Skip to main content

Backing Store

Each distro requires a backing store, which can be a database or etcd. Use a database when you want a lightweight backing store for smaller clusters that do not require high availability. Alternately, use etcd when you need high availability

vCluster is deployed using a StatefulSet (set of pod replicas + persistent volume (disk)) instead of a deployment (set of pod replicas).

Config reference

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.