Skip to main content
Version: v4.8 Stable

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:

  1. Installation options - Control how the platform deploys
    • Top-level fields in the vcluster-platform chart's values.yaml. These configure Kubernetes deployment aspects like resources and replicas.
    • Located in the vcluster-platform Helm chart (loft-sh/loft).
    • Examples: replicaCount, resources, ingress, persistence, etc.
  1. 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 the vcluster-platform chart's values.yaml.
    • Located in the vcluster-platform Helm chart (loft-sh/loft).
    • Examples: config.auth, config.audit, config.loftHost.
  1. Agent settings - Control how the platform agent operates on connected clusters
    • Set through the top-level agentValues: section of the vcluster-platform chart. You can override these per-cluster with annotations.
    • Located in the vcluster-platform Helm chart (loft-sh/loft).
    • Examples: replicaCount, resources, ingress, persistence, etc.

The following is an example of vcluster-platform Helm chart values.yaml file showing the configuration sections:

Example platform values.yaml with all 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:

TaskConfiguration locationExample
Setting admin credentialsadmin: section (root level)admin.username, admin.password
Configuring replicas for HAreplicaCount: setting (root level)replicaCount: 2
Setting up ingressingress: section (root level)ingress.enabled: true
Setting resource limitsresources: section (root level)resources.limits.memory
Configuring auth providersconfig.auth: sectionconfig.auth.github
Setting custom domainconfig: sectionconfig.loftHost

Apply configuration​

There are two ways to apply the values.yaml content:

  • Through helm values 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:

Modify the following with your specific values to generate a copyable command:
Apply platform configuration using Helm
helm upgrade vcluster-platform vcluster-platform \
--install \
--repo https://charts.loft.sh/ \
--namespace vcluster-platform \
--create-namespace \
--values values.yaml \
--version 4.8.0