Introduction
vCluster Platform is deployed on a Kubernetes cluster that acts as the primary Control Plane Cluster. Additional clusters can connect to this Platform instance and be managed by it. In this architecture:
- The primary cluster runs vCluster Platform.
- Additional Control Plane Clusters connect to the primary cluster and run the vCluster Platform agent.
- Platform coordinates and manages all connected clusters through their agents.
- The primary cluster also runs the vCluster Platform agent, so Platform manages it the same way as any other connected cluster.
The values.yaml of vcluster-platform Helm chart in loft-sh repository contains the configuration values when installing or upgrading vCluster Platform or vCluster Platform Agent.
Both vCluster Platform and vCluster Platform Agent are using the vcluster-platform Helm chart. By setting values in values.yaml, you can choose to install or upgrade vCluster Platform or vCluster Platform Agent. You can also control the post-deployment platform behavior and the
behavior of agents on other connected clusters.
Values sections​
The platform's values.yaml file contains multiple configuration sections:
- Installation options - Control how the platform deploys
- Top-level fields in the
vcluster-platformchart'svalues.yaml. These configure Kubernetes deployment aspects like resources and replicas. - Located in the
vcluster-platformHelm chart (loft-sh/loft). - Examples:
replicaCount,resources,ingress,persistence, etc.
- Top-level fields in the
- Platform configs - Control how the platform functions after deployment. You can also manage these through the UI in Admin > Config.
- These are grouped under the
config:section of thevcluster-platformchart'svalues.yaml. - Located in the
vcluster-platformHelm chart (loft-sh/loft). - Examples:
config.auth,config.audit,config.loftHost.
- These are grouped under the
- Agent settings - Control how the platform agent operates on connected clusters
- Set through the top-level
agentValues:section of thevcluster-platformchart. You can override these per-cluster with annotations. - Located in the
vcluster-platformHelm chart (loft-sh/loft). - Examples:
replicaCount,resources,ingress,persistence, etc.
- Set through the top-level
The following is an example of vcluster-platform Helm chart values.yaml file showing the configuration sections:
# Installation options (top-level)
replicaCount: 2
resources:
requests:
memory: 512Mi
cpu: 400m
admin:
create: true
username: my-admin-user
password: my-secure-password
ingress:
enabled: true
host: platform.example.com
# Platform configs (inside config section)
config:
loftHost: platform.example.com
audit:
enabled: true
auth:
github:
clientId: $CLIENT_ID
# Agent settings (top-level)
agentValues:
resources:
requests:
memory: 256Mi
# Security contexts for agent pods
securityContext:
runAsNonRoot: true
runAsUser: 1001
podSecurityContext:
fsGroup: 2001
Common configuration fields​
For common tasks, configure the following:
| Task | Configuration location | Example |
|---|---|---|
| Setting admin credentials | admin: section (root level) | admin.username, admin.password |
| Configuring replicas for HA | replicaCount: setting (root level) | replicaCount: 2 |
| Setting up ingress | ingress: section (root level) | ingress.enabled: true |
| Setting resource limits | resources: section (root level) | resources.limits.memory |
| Configuring auth providers | config.auth: section | config.auth.github |
| Setting custom domain | config: section | config.loftHost |
Apply configuration​
There are two ways to apply the values.yaml content:
- Through
helmvalues when installing or upgrading the platform or agent. - Through the vCluster Platform UI in Admin > Config after installation. This is only for platform configs.
Using helm values allows you to manage configuration declaratively and enables deployment through GitOps solutions such as ArgoCD. Here's an example of applying platform configuration with helm:
helm upgrade vcluster-platform vcluster-platform \
--install \
--repo https://charts.loft.sh/ \
--namespace vcluster-platform \
--create-namespace \
--values values.yaml \
--version 4.6.0