Skip to main content
Version: main 🚧

Overview

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

  • The primary control plane cluster runs the vCluster Platform.
  • Other control plane clusters connect to the primary control plane cluster and run the vCluster Platform Agent.
  • The Platform coordinates and manages all connected control plane clusters through their agents.
  • There are both vCluster Platform and vCluster Platform agent running on the primary control plane cluster. The vCluster Platform manages the primary control plane 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 control plane clusters that are managed by the vCluster Platform.

The agentValues behavior is as follows:

  • By default, agentValues is an empty object {}.
  • An empty agentValues object means that agents installed on connected control plane clusters will inherit the same configuration as the platform running on the primary control plane cluster.
  • You can populate agentValues to override the default agent configuration globally for all connected control plane 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