Skip to main content

Control Plane

Config reference

controlPlane required object pro

Configure vCluster's control plane components and deployment.

distro required object pro

Distro holds virtual cluster related distro options. A distro cannot be changed after vCluster is deployed.

k8s required object pro

K8S holds K8s relevant configuration.

enabled required boolean pro

Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.

apiServer required object pro

APIServer holds configuration specific to starting the api server.

enabled required boolean pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

controllerManager required object pro

ControllerManager holds configuration specific to starting the controller manager.

enabled required boolean pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

scheduler required object pro

Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

k3s required object pro

K3S holds K3s relevant configuration.

enabled required boolean pro

Enabled specifies if the K3s distro should be enabled. Only one distro can be enabled at the same time.

token required string pro

Token is the K3s token to use. If empty, vCluster will choose one.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

k0s required object pro

K0S holds k0s relevant configuration.

enabled required boolean pro

Enabled specifies if the k0s distro should be enabled. Only one distro can be enabled at the same time.

config required string pro

Config allows you to override the k0s config passed to the k0s binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

eks required object pro

EKS holds eks relevant configuration.

enabled required boolean pro

Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.

apiServer required object pro

APIServer holds configuration specific to starting the api server.

enabled required boolean pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

controllerManager required object pro

ControllerManager holds configuration specific to starting the controller manager.

enabled required boolean pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

scheduler required object pro

Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled

image required object pro

Image is the distro image

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

backingStore required object pro

BackingStore defines which backing store to use for virtual cluster. If not defined will use embedded database as a default backing store.

etcd required object pro

Etcd defines that etcd should be used as the backend for the virtual cluster

embedded required object pro

Embedded defines to use embedded etcd as a storage backend for the virtual cluster

enabled required boolean pro

Enabled defines if the embedded etcd should be used.

migrateFromDeployedEtcd required boolean pro

MigrateFromDeployedEtcd signals that vCluster should migrate from the deployed external etcd to embedded etcd.

deploy required object pro

Deploy defines to use an external etcd that is deployed by the helm chart

enabled required boolean pro

Enabled defines that an external etcd should be deployed.

statefulSet required object pro

StatefulSet holds options for the external etcd statefulSet.

enabled required boolean pro

Enabled defines if the statefulSet should be deployed

image required object pro

Image is the image to use for the external etcd statefulSet

repository required string pro

Repository is the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the external etcd image

env required object[] pro

Env are extra environment variables

extraArgs required string[] pro

ExtraArgs are appended to the etcd command.

resources required object pro

Resources the etcd can consume

limits required object pro

Limits are resource limits for the container

requests required object pro

Requests are minimal resources that will be consumed by the container

pods required object pro

Pods defines extra metadata for the etcd pods.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

highAvailability required object pro

HighAvailability are high availability options

replicas required integer pro

Replicas are the amount of pods to use.

scheduling required object pro

Scheduling options for the etcd pods.

nodeSelector required object pro

NodeSelector is the node selector to apply to the pod.

affinity required object pro

Affinity is the affinity to apply to the pod.

tolerations required object[] pro

Tolerations are the tolerations to apply to the pod.

priorityClassName required string pro

PriorityClassName is the priority class name for the the pod.

podManagementPolicy required string pro

PodManagementPolicy is the statefulSet pod management policy.

topologySpreadConstraints required object[] pro

TopologySpreadConstraints are the topology spread constraints for the pod.

security required object pro

Security options for the etcd pods.

podSecurityContext required object pro

PodSecurityContext specifies security context options on the pod level.

containerSecurityContext required object pro

ContainerSecurityContext specifies security context options on the container level.

persistence required object pro

Persistence options for the etcd pods.

volumeClaim required object pro

VolumeClaim can be used to configure the persistent volume claim.

enabled required boolean pro

Enabled enables deploying a persistent volume claim.

accessModes required string[] pro

AccessModes are the persistent volume claim access modes.

retentionPolicy required string pro

RetentionPolicy is the persistent volume claim retention policy.

size required string pro

Size is the persistent volume claim storage size.

storageClass required string pro

StorageClass is the persistent volume claim storage class.

volumeClaimTemplates required object[] pro

VolumeClaimTemplates defines the volumeClaimTemplates for the statefulSet

addVolumes required object[] pro

AddVolumes defines extra volumes for the pod

addVolumeMounts required object[] pro

AddVolumeMounts defines extra volume mounts for the container

name required string pro

This must match the Name of a Volume.

readOnly required boolean pro

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

mountPath required string pro

Path within the container at which the volume should be mounted. Must not contain ':'.

subPath required string pro

Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

mountPropagation required string pro

mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.

subPathExpr required string pro

Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

service required object pro

Service holds options for the external etcd service.

enabled required boolean pro

Enabled defines if the etcd service should be deployed

annotations required object pro

Annotations are extra annotations for the external etcd service

headlessService required object pro

HeadlessService holds options for the external etcd headless service.

enabled required boolean pro

Enabled defines if the etcd headless service should be deployed

annotations required object pro

Annotations are extra annotations for the external etcd headless service

database required object pro

Database defines that a database backend should be used as the backend for the virtual cluster. This uses a project called kine under the hood which is a shim for bridging Kubernetes and relational databases.

embedded required object pro

Embedded defines that an embedded database (sqlite) should be used as the backend for the virtual cluster

enabled required boolean pro

Enabled defines if the database should be used.

dataSource required string pro

DataSource is the kine dataSource to use for the database. This depends on the database format. This is optional for the embedded database. Examples:

  • mysql: mysql://username:password@tcp(hostname:3306)/k3s
  • postgres: postgres://username:password@hostname:5432/k3s
keyFile required string pro

KeyFile is the key file to use for the database. This is optional.

certFile required string pro

CertFile is the cert file to use for the database. This is optional.

caFile required string pro

CaFile is the ca file to use for the database. This is optional.

external required object pro

External defines that an external database should be used as the backend for the virtual cluster

enabled required boolean pro

Enabled defines if the database should be used.

dataSource required string pro

DataSource is the kine dataSource to use for the database. This depends on the database format. This is optional for the embedded database. Examples:

  • mysql: mysql://username:password@tcp(hostname:3306)/k3s
  • postgres: postgres://username:password@hostname:5432/k3s
keyFile required string pro

KeyFile is the key file to use for the database. This is optional.

certFile required string pro

CertFile is the cert file to use for the database. This is optional.

caFile required string pro

CaFile is the ca file to use for the database. This is optional.

coredns required object pro

CoreDNS defines everything related to the coredns that is deployed and used within the vCluster.

enabled required boolean pro

Enabled defines if coredns is enabled

embedded required boolean pro

Embedded defines if vCluster will start the embedded coredns service within the control-plane and not as a separate deployment. This is a PRO feature.

service required object pro

Service holds extra options for the coredns service deployed within the virtual cluster

spec required object pro

Spec holds extra options for the coredns service

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

deployment required object pro

Deployment holds extra options for the coredns deployment deployed within the virtual cluster

image required string pro

Image is the coredns image to use

replicas required integer pro

Replicas is the amount of coredns pods to run.

nodeSelector required object pro

NodeSelector is the node selector to use for coredns.

resources required object pro

Resources are the desired resources for coredns.

limits required object pro

Limits are resource limits for the container

requests required object pro

Requests are minimal resources that will be consumed by the container

pods required object pro

Pods is additional metadata for the coredns pods.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

overwriteConfig required string pro

OverwriteConfig can be used to overwrite the coredns config

overwriteManifests required string pro

OverwriteManifests can be used to overwrite the coredns manifests used to deploy coredns

proxy required object pro

Proxy defines options for the virtual cluster control plane proxy that is used to do authentication and intercept requests.

bindAddress required string pro

BindAddress under which vCluster will expose the proxy.

port required integer pro

Port under which vCluster will expose the proxy. Changing port is currently not supported.

extraSANs required string[] pro

ExtraSANs are extra hostnames to sign the vCluster proxy certificate for.

hostPathMapper required object pro

HostPathMapper defines if vCluster should rewrite host paths.

enabled required boolean pro

Enabled specifies if the host path mapper will be used

central required boolean pro

Central specifies if the central host path mapper will be used

ingress required object pro

Ingress defines options for vCluster ingress deployed by Helm.

enabled required boolean pro

Enabled defines if the control plane ingress should be enabled

host required string pro

Host is the host where vCluster will be reachable

pathType required string pro

PathType is the path type of the ingress

spec required object pro

Spec allows you to configure extra ingress options.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

service required object pro

Service defines options for vCluster service deployed by Helm.

enabled required boolean pro

Enabled defines if the control plane service should be enabled

spec required object pro

Spec allows you to configure extra service options.

kubeletNodePort required integer pro

KubeletNodePort is the node port where the fake kubelet is exposed. Defaults to 0.

httpsNodePort required integer pro

HTTPSNodePort is the node port where https is exposed. Defaults to 0.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

statefulSet required object pro

StatefulSet defines options for vCluster statefulSet deployed by Helm.

highAvailability required object pro

HighAvailability holds options related to high availability.

replicas required integer pro

Replicas is the amount of replicas to use for the statefulSet.

leaseDuration required integer pro

LeaseDuration is the time to lease for the leader.

renewDeadline required integer pro

RenewDeadline is the deadline to renew a lease for the leader.

retryPeriod required integer pro

RetryPeriod is the time until a replica will retry to get a lease.

resources required object pro

Resources are the resource requests and limits for the statefulSet container.

limits required object pro

Limits are resource limits for the container

requests required object pro

Requests are minimal resources that will be consumed by the container

scheduling required object pro

Scheduling holds options related to scheduling.

nodeSelector required object pro

NodeSelector is the node selector to apply to the pod.

affinity required object pro

Affinity is the affinity to apply to the pod.

tolerations required object[] pro

Tolerations are the tolerations to apply to the pod.

priorityClassName required string pro

PriorityClassName is the priority class name for the the pod.

podManagementPolicy required string pro

PodManagementPolicy is the statefulSet pod management policy.

topologySpreadConstraints required object[] pro

TopologySpreadConstraints are the topology spread constraints for the pod.

security required object pro

Security defines pod or container security context.

podSecurityContext required object pro

PodSecurityContext specifies security context options on the pod level.

containerSecurityContext required object pro

ContainerSecurityContext specifies security context options on the container level.

probes required object pro

Probes enables or disables the main container probes.

livenessProbe required object pro

LivenessProbe specifies if the liveness probe for the container should be enabled

enabled required boolean pro

Enabled defines if this option should be enabled.

readinessProbe required object pro

ReadinessProbe specifies if the readiness probe for the container should be enabled

enabled required boolean pro

Enabled defines if this option should be enabled.

startupProbe required object pro

StartupProbe specifies if the startup probe for the container should be enabled

enabled required boolean pro

Enabled defines if this option should be enabled.

persistence required object pro

Persistence defines options around persistence for the statefulSet.

volumeClaim required object pro

VolumeClaim can be used to configure the persistent volume claim.

enabled required string|boolean pro

Enabled enables deploying a persistent volume claim. If auto, vCluster will automatically determine based on the chosen distro and other options if this is required.

accessModes required string[] pro

AccessModes are the persistent volume claim access modes.

retentionPolicy required string pro

RetentionPolicy is the persistent volume claim retention policy.

size required string pro

Size is the persistent volume claim storage size.

storageClass required string pro

StorageClass is the persistent volume claim storage class.

volumeClaimTemplates required object[] pro

VolumeClaimTemplates defines the volumeClaimTemplates for the statefulSet

addVolumes required object[] pro

AddVolumes defines extra volumes for the pod

addVolumeMounts required object[] pro

AddVolumeMounts defines extra volume mounts for the container

name required string pro

This must match the Name of a Volume.

readOnly required boolean pro

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

mountPath required string pro

Path within the container at which the volume should be mounted. Must not contain ':'.

subPath required string pro

Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

mountPropagation required string pro

mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.

subPathExpr required string pro

Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

pods required object pro

Additional labels or annotations for the statefulSet pods.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

image required object pro

Image is the image for the controlPlane statefulSet container

repository required string pro

Configure the registry and repository of the container image, e.g. my-registry.com/my-repo/my-image. It defaults to the vCluster pro repository that includes the optional pro modules that are turned off by default. If you still want to use the pure OSS build, use 'ghcr.io/loft-sh/vcluster-oss' instead.

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the policy how to pull the image.

workingDir required string pro

WorkingDir specifies in what folder the main process should get started.

command required string[] pro

Command allows you to override the main command.

args required string[] pro

Args allows you to override the main arguments.

env required object[] pro

Env are additional environment variables for the statefulSet container.

serviceMonitor required object pro

ServiceMonitor can be used to automatically create a service monitor for vCluster deployment itself.

enabled required boolean pro

Enabled configures if Helm should create the service monitor.

labels required object pro

Labels are the extra labels to add to the service monitor.

annotations required object pro

Annotations are the extra annotations to add to the service monitor.

advanced required object pro

Advanced holds additional configuration for the vCluster control plane.

defaultImageRegistry required string pro

DefaultImageRegistry will be used as a prefix for all internal images deployed by vCluster or Helm. This makes it easy to upload all required vCluster images to a single private repository and set this value. Workload images are not affected by this.

virtualScheduler required object pro

VirtualScheduler defines if a scheduler should be used within the virtual cluster or the scheduling decision for workloads will be made by the host cluster.

enabled required boolean pro

Enabled defines if this option should be enabled.

serviceAccount required object pro

ServiceAccount specifies options for the vCluster control plane service account.

enabled required boolean pro

Enabled specifies if the service account should get deployed.

name required string pro

Name specifies what name to use for the service account.

imagePullSecrets required object[] pro

ImagePullSecrets defines extra image pull secrets for the service account.

name required string pro

Name of the image pull secret to use.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

workloadServiceAccount required object pro

WorkloadServiceAccount specifies options for the service account that will be used for the workloads that run within the virtual cluster.

enabled required boolean pro

Enabled specifies if the service account for the workloads should get deployed.

name required string pro

Name specifies what name to use for the service account for the virtual cluster workloads.

imagePullSecrets required object[] pro

ImagePullSecrets defines extra image pull secrets for the workload service account.

name required string pro

Name of the image pull secret to use.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

headlessService required object pro

HeadlessService specifies options for the headless service used for the vCluster StatefulSet.

annotations required object pro

Annotations are extra annotations for this resource.

labels required object pro

Labels are extra labels for this resource.

globalMetadata required object pro

GlobalMetadata is metadata that will be added to all resources deployed by Helm.

annotations required object pro

Annotations are extra annotations for this resource.