Skip to main content
Version: main 🚧

Overview

When a vCluster Platform is deployed on a host cluster (or, primary host cluster), it can act as a centralized control plane. Other host clusters can connect to the vCluster Platform running on the primary host cluster and be managed by it. In this architecture:

  • The primary host cluster runs the vCluster Platform.
  • Other host clusters connect to the primary host cluster and run the vCluster Platform Agent.
  • The Platform coordinates and manages all connected host clusters through their agents.
  • There are both vCluster Platform and vCluster Platform agent running on the primary host cluster. The vCluster Platform manages the primary host cluster through its vCluster Platform Agent as well.

Agent settings are the content in the values.yaml under the agentValues. It controls the behavior of vCluster Platform Agents installed in the host clusters that are managed by the vCluster Platform.

The agentValues behavior is as follows:

  • By default, agentValues is an empty object {}.
  • An empty agentValues list means that agents installed on connected host clusters will inherit the same configuration as the platform running on the primary host cluster.
  • You can populate agentValues to override the default agent configuration globally for all connected host clusters.

Connect to platform​

A new cluster can be connected to the platform through the UI or CLI:

  1. Go to the Clusters view using the menu on the left.

  2. Click on the button on the right.

  3. In the drawer that appears from the right, give your cluster a name in the Display Name field. Optionally give a name for the underlying kubernetes resource in the Kubernetes Name (ID), or leave it empty to have it autogenerated for you. Then click on the button.

  4. In the section "Cluster Connection", please copy & execute the displayed vCluster CLI or Helm command

  5. Please wait until vCluster Platform installs the agent in your connected cluster.

  6. Once successful, you may create a space / virtual cluster in the newly connected cluster by using the displayed vCluster CLI command.

  7. Click on the button to go to the Clusters view.

Connect a cluster

UI will generate a CLI command that can be used to connect the cluster. Make sure to check the CLI tab for working with the command.

When connecting a new cluster, the user creates a new cluster resource and obtains a pre-shared key (PSK) that the user then uses to bootstrap the agent. The agent then utilizes this key to reach the control plane, authenticate itself, and establish a secure WireGuard-based, user-space tunnel.

If the agent cannot establish a direct WireGuard-based connection, the agents falls back to utilising the control plane as a Designated Encrypted Relay for Packets. The control plane relay is comparable to the same role as TURN servers in the ICE standard, using HTTPS streams (or WebSockets) and WireGuards keys instead.

info

If you encounter issues while configuring agent values or deploying it manually, you might want to take a look at the Cluster troubleshooting guide.

Find agent pods​

The platform agent runs as a pod in each connected cluster. Locate agent pods to verify connectivity and troubleshoot issues:

Modify the following with your specific values to generate a copyable command:
List agent pods
kubectl get pods -n vcluster-platform -l app=loft

Example output:

NAME                   READY   STATUS    RESTARTS   AGE
loft-d6c6d5576-7kqwx 1/1 Running 0 9d

Retrieve agent values​

For a platform instance on host nimbus.vcluster.cloud with a connected cluster named staging, the following table shows how to retrieve agent values for each tier. Use these endpoints to determine current agent configuration or to layer values instead of overriding them.

You can specify multiple values files:

--values=https://<platform-config-endpoint> --values=https://<cluster-annotation-endpoint>

An access key is required for authentication.


HostCluster NameSourceRequestResponse
nimbus.vcluster.cloudstagingnonehttps://nimbus.vcluster.cloud/clusters/staging?token=access-keyCurrent agent values
nimbus.vcluster.cloudstagingplatform-confighttps://nimbus.vcluster.cloud/clusters/staging?token=access-key&source=platform-configContent of agentValues section in platform config
nimbus.vcluster.cloudstagingcluster-annotationhttps://nimbus.vcluster.cloud/clusters/staging?token=access-key&source=cluster-annotationValue of the loft.sh/agent-values annotation on the Cluster Object