Skip to content

Juno Internet-Enabled Installation Guide


This page will walk you through installing Juno on your existing cluster.

It assumes you already have a Kubernetes cluster up&running.

If you need to get one deployed, you can find guidance on it here

If you work in an offline environment, you should instead follow the Air-Gapped Installation guide.

Node Labels

Node labels help Kubernetes decide where to schedule particular workloads. Add labels to ALL your nodes:

# Replace these node names with your actual node names from 'kubectl get nodes'
kubectl label nodes <CONTROL_NODE_NAME> juno-innovations.com/service=true
kubectl label nodes <SERVICE_WORKER_NAME> juno-innovations.com/service=true
kubectl label nodes <WORKSTATION_NODE_NAME> juno-innovations.com/workstation=true

If you are using a cloud-managed Kubernetes platform, such as EKS, ensure it is configured to label all nodes you need appropriately.

Juno Installation

Clone the Juno Bootstrap repository:

git clone https://github.com/juno-fx/Juno-Bootstrap.git
cd Juno-Bootstrap

Before running any installation scripts, review the Auth Setup Guide as well as the Deployment Configurations

You must carefully configure the values.yaml file to match your specific environment requirements. Follow these steps:

  1. Review the sample configurations provided in the repository
  2. Modify the values.yaml file to reflect your environment specifics:
    • Auth
    • License
    • Ingress overrides
    • Nvidia overrides
  3. Search the Deployment Configurations documentation for detailed information about each configuration option

Install Juno

  1. If you are using the predefined Juno deployment configurations, run the following command (replace the <predefined deployment> with the path to the predefined Juno deployment configuration):
helm install juno ./chart/ \
  -f <predefined deployment> \
  -f <predefined deployment> \
  -f ./.values.yaml

Keep in mind that the order in which flags are passed matters here. We are adding our .values.yaml at the end of the command so we can override predefined deployments with our own settings.

  1. If you are using your own configuration, run the following command:
helm install juno ./chart/ \
  -f ./.values.yaml

The script will:
- Install necessary Kubernetes addons
- Deploy Juno core services

Post-Installation Configuration

Genesis Configuration

Genesis is the administration interface for Juno. For detailed setup instructions, visit our Genesis Documentation.

After installation completes:

  1. Access Genesis via your control node's hostname

(Note: It is not possible to access Genesis via an IP address. Juno uses a host based ingress which does not support IP connections.)

  1. Log in with the credentials created during installation
  2. Follow the setup wizard to configure:
  3. Projects and workspaces
  4. User accounts and permissions
  5. Storage backends
  6. Network access and policies
  7. License verification

Access to Argo CD

Argo CD is used for managing applications in Juno. To access the Argo CD UI:

  1. To get the initial admin password:

    kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
    

  2. Forward the port to your local machine:

    kubectl port-forward service/argocd-server 8080:80 -n argocd
    

  3. Access the UI at http://localhost:8080

  4. Run the port forward and login with the following:

    username: admin
    password: <value from step 1>
    

  5. Use the UI to inspect applications, check logs, and diagnose errors

Maintenance and Updates

Upgrading Kubernetes

To upgrade your K3s installation, follow the standard K3s documentation for upgrades: K3s Upgrade Documentation

The general process involves:

  1. Upgrade the server (control) node first
  2. Verify the server node is functioning correctly
  3. Upgrade each agent (worker) node

Always ensure you have backups before performing upgrades.

For further assistance, contact Juno Support.

Useful references

If you run into any issues, you can check the sync status of ArgoCD - see our overview here

To troubleshoot components within K8s, check out our Kubernetes Overview