Backing Store
Each virtual cluster requires a backing store and vCluster provides two different types of backing store options:
There are different ways to deploy the type of backing store.
By default, vCluster uses an embedded SQLite database as the backing store. This option is great for smaller sandbox virtual clusters, but for production, it's recommended to use a different backing store option.
Config reference​
backingStore required object ​
BackingStore defines which backing store to use for virtual cluster. If not defined will use embedded database as a default backing store.
backingStore required object ​etcd required object ​
Etcd defines that etcd should be used as the backend for the virtual cluster
etcd required object ​embedded required object ​
Embedded defines to use embedded etcd as a storage backend for the virtual cluster
embedded required object ​enabled required boolean false ​
Enabled defines if the embedded etcd should be used.
enabled required boolean false ​migrateFromDeployedEtcd required boolean false ​
MigrateFromDeployedEtcd signals that vCluster should migrate from the deployed external etcd to embedded etcd.
migrateFromDeployedEtcd required boolean false ​snapshotCount required integer ​
SnapshotCount defines the number of snapshots to keep for the embedded etcd. Defaults to 10000 if less than 1.
snapshotCount required integer ​extraArgs required string[] [] ​
ExtraArgs are additional arguments to pass to the embedded etcd.
extraArgs required string[] [] ​deploy required object ​
Deploy defines to use an external etcd that is deployed by the helm chart
deploy required object ​enabled required boolean false ​
Enabled defines that an external etcd should be deployed.
enabled required boolean false ​statefulSet required object ​
StatefulSet holds options for the external etcd statefulSet.
statefulSet required object ​enabled required boolean true ​
Enabled defines if the statefulSet should be deployed
enabled required boolean true ​enableServiceLinks required boolean true ​
EnableServiceLinks for the StatefulSet pod
enableServiceLinks required boolean true ​image required object ​
Image is the image to use for the external etcd statefulSet
image required object ​registry required string registry.k8s.io ​
Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally
overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.
registry required string registry.k8s.io ​repository required string etcd ​
Repository is the repository of the container image, e.g. my-repo/my-image
repository required string etcd ​tag required string 3.5.21-0 ​
Tag is the tag of the container image, and is the default version.
tag required string 3.5.21-0 ​imagePullPolicy required string ​
ImagePullPolicy is the pull policy for the external etcd image
imagePullPolicy required string ​env required object[] [] ​
Env are extra environment variables
env required object[] [] ​extraArgs required string[] [] ​
ExtraArgs are appended to the etcd command.
extraArgs required string[] [] ​resources required object ​
Resources the etcd can consume
resources required object ​pods required object ​
Pods defines extra metadata for the etcd pods.
pods required object ​highAvailability required object ​
HighAvailability are high availability options
highAvailability required object ​replicas required integer 1 ​
Replicas are the amount of pods to use.
replicas required integer 1 ​scheduling required object ​
Scheduling options for the etcd pods.
scheduling required object ​nodeSelector required object {} ​
NodeSelector is the node selector to apply to the pod.
nodeSelector required object {} ​affinity required object {} ​
Affinity is the affinity to apply to the pod.
affinity required object {} ​tolerations required object[] [] ​
Tolerations are the tolerations to apply to the pod.
tolerations required object[] [] ​priorityClassName required string ​
PriorityClassName is the priority class name for the the pod.
priorityClassName required string ​podManagementPolicy required string Parallel ​
PodManagementPolicy is the statefulSet pod management policy.
podManagementPolicy required string Parallel ​topologySpreadConstraints required object[] [] ​
TopologySpreadConstraints are the topology spread constraints for the pod.
topologySpreadConstraints required object[] [] ​security required object ​
Security options for the etcd pods.
security required object ​persistence required object ​
Persistence options for the etcd pods.
persistence required object ​volumeClaim required object ​
VolumeClaim can be used to configure the persistent volume claim.
volumeClaim required object ​enabled required boolean true ​
Enabled enables deploying a persistent volume claim.
enabled required boolean true ​accessModes required string[] [ReadWriteOnce] ​
AccessModes are the persistent volume claim access modes.
accessModes required string[] [ReadWriteOnce] ​retentionPolicy required string Retain ​
RetentionPolicy is the persistent volume claim retention policy.
retentionPolicy required string Retain ​size required string 5Gi ​
Size is the persistent volume claim storage size.
size required string 5Gi ​storageClass required string ​
StorageClass is the persistent volume claim storage class.
storageClass required string ​volumeClaimTemplates required object[] [] ​
VolumeClaimTemplates defines the volumeClaimTemplates for the statefulSet
volumeClaimTemplates required object[] [] ​addVolumes required object[] [] ​
AddVolumes defines extra volumes for the pod
addVolumes required object[] [] ​addVolumeMounts required object[] ​
AddVolumeMounts defines extra volume mounts for the container
addVolumeMounts required object[] ​name required string ​
This must match the Name of a Volume.
name required string ​readOnly required boolean ​
Mounted read-only if true, read-write otherwise (false or unspecified).
Defaults to false.
readOnly required boolean ​mountPath required string ​
Path within the container at which the volume should be mounted. Must
not contain ':'.
mountPath required string ​subPath required string ​
Path within the volume from which the container's volume should be mounted.
Defaults to "" (volume's root).
subPath required string ​mountPropagation required string ​
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.
mountPropagation required string ​subPathExpr required string ​
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.
subPathExpr required string ​annotations required object {} ​
Annotations are extra annotations for this resource.
annotations required object {} ​labels required object {} ​
Labels are extra labels for this resource.
labels required object {} ​service required object ​
Service holds options for the external etcd service.
service required object ​external required object ​
External defines to use a self-hosted external etcd that is not deployed by the helm chart
external required object ​database required object ​
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.
database required object ​embedded required object ​
Embedded defines that an embedded database (sqlite) should be used as the backend for the virtual cluster
embedded required object ​enabled required boolean false ​
Enabled defines if the database should be used.
enabled required boolean false ​dataSource required string ​
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
dataSource required string ​keyFile required string ​
KeyFile is the key file to use for the database. This is optional.
keyFile required string ​certFile required string ​
CertFile is the cert file to use for the database. This is optional.
certFile required string ​caFile required string ​
CaFile is the ca file to use for the database. This is optional.
caFile required string ​extraArgs required string[] [] ​
ExtraArgs are additional arguments to pass to Kine.
extraArgs required string[] [] ​external required object ​
External defines that an external database should be used as the backend for the virtual cluster
external required object ​enabled required boolean false ​
Enabled defines if the database should be used.
enabled required boolean false ​dataSource required string ​
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
dataSource required string ​keyFile required string ​
KeyFile is the key file to use for the database. This is optional.
keyFile required string ​certFile required string ​
CertFile is the cert file to use for the database. This is optional.
certFile required string ​caFile required string ​
CaFile is the ca file to use for the database. This is optional.
caFile required string ​extraArgs required string[] [] ​
ExtraArgs are additional arguments to pass to Kine.
extraArgs required string[] [] ​connector required string ​
Connector specifies a secret located in a connected vCluster Platform that contains database server connection information
to be used by Platform to create a database and database user for the vCluster.
and non-privileged user. A kine endpoint should be created using the database and user on Platform registration.
This is optional.
connector required string ​