What is values.yaml?
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.
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 in other managed host 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 in 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:
RELEASE_NAME=vcluster-platform
RELEASE_NAMESPACE=vcluster-platform
PLATFORM_VERSION='' # Set this to a specific version or leave empty for latest
helm upgrade $RELEASE_NAME vcluster-platform \
--install \
--repo https://charts.loft.sh/ \
--namespace $RELEASE_NAMESPACE \
--create-namespace \
--values values.yaml \
${PLATFORM_VERSION:+--version $PLATFORM_VERSION}