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.
backingStore
required object proetcd
required object pro
Etcd defines that etcd should be used as the backend for the virtual cluster
etcd
required object proembedded
required object pro
Embedded defines to use embedded etcd as a storage backend for the virtual cluster
embedded
required object prodeploy
required object pro
Deploy defines to use an external etcd that is deployed by the helm chart
deploy
required object proenabled
required boolean false pro
Enabled defines that an external etcd should be deployed.
enabled
required boolean false prostatefulSet
required object pro
StatefulSet holds options for the external etcd statefulSet.
statefulSet
required object proenabled
required boolean false pro
Enabled defines if the statefulSet should be deployed
enabled
required boolean false proenableServiceLinks
required boolean false pro
EnableServiceLinks for the StatefulSet pod
enableServiceLinks
required boolean false proimage
required object pro
Image is the image to use for the external etcd statefulSet
image
required object proregistry
required string pro
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 prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the external etcd image
imagePullPolicy
required string proenv
required object[] pro
Env are extra environment variables
env
required object[] proextraArgs
required string[] pro
ExtraArgs are appended to the etcd command.
extraArgs
required string[] proresources
required object pro
Resources the etcd can consume
resources
required object propods
required object pro
Pods defines extra metadata for the etcd pods.
pods
required object prohighAvailability
required object pro
HighAvailability are high availability options
highAvailability
required object proreplicas
required integer pro
Replicas are the amount of pods to use.
replicas
required integer proscheduling
required object pro
Scheduling options for the etcd pods.
scheduling
required object pronodeSelector
required object pro
NodeSelector is the node selector to apply to the pod.
nodeSelector
required object proaffinity
required object pro
Affinity is the affinity to apply to the pod.
affinity
required object protolerations
required object[] pro
Tolerations are the tolerations to apply to the pod.
tolerations
required object[] propriorityClassName
required string pro
PriorityClassName is the priority class name for the the pod.
priorityClassName
required string propodManagementPolicy
required string pro
PodManagementPolicy is the statefulSet pod management policy.
podManagementPolicy
required string protopologySpreadConstraints
required object[] pro
TopologySpreadConstraints are the topology spread constraints for the pod.
topologySpreadConstraints
required object[] prosecurity
required object pro
Security options for the etcd pods.
security
required object propersistence
required object pro
Persistence options for the etcd pods.
persistence
required object provolumeClaim
required object pro
VolumeClaim can be used to configure the persistent volume claim.
volumeClaim
required object proenabled
required boolean false pro
Enabled enables deploying a persistent volume claim.
enabled
required boolean false proaccessModes
required string[] pro
AccessModes are the persistent volume claim access modes.
accessModes
required string[] proretentionPolicy
required string pro
RetentionPolicy is the persistent volume claim retention policy.
retentionPolicy
required string prosize
required string pro
Size is the persistent volume claim storage size.
size
required string prostorageClass
required string pro
StorageClass is the persistent volume claim storage class.
storageClass
required string provolumeClaimTemplates
required object[] pro
VolumeClaimTemplates defines the volumeClaimTemplates for the statefulSet
volumeClaimTemplates
required object[] proaddVolumes
required object[] pro
AddVolumes defines extra volumes for the pod
addVolumes
required object[] proaddVolumeMounts
required object[] pro
AddVolumeMounts defines extra volume mounts for the container
addVolumeMounts
required object[] proname
required string pro
This must match the Name of a Volume.
name
required string proreadOnly
required boolean false pro
Mounted read-only if true, read-write otherwise (false or unspecified).
Defaults to false.
readOnly
required boolean false promountPath
required string pro
Path within the container at which the volume should be mounted. Must
not contain ':'.
mountPath
required string prosubPath
required string pro
Path within the volume from which the container's volume should be mounted.
Defaults to "" (volume's root).
subPath
required string promountPropagation
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.
mountPropagation
required string prosubPathExpr
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.
subPathExpr
required string proannotations
required object pro
Annotations are extra annotations for this resource.
annotations
required object prolabels
required object pro
Labels are extra labels for this resource.
labels
required object proservice
required object pro
Service holds options for the external etcd service.
service
required object proheadlessService
required object pro
HeadlessService holds options for the external etcd headless service.
headlessService
required object prodatabase
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.
database
required object proembedded
required object pro
Embedded defines that an embedded database (sqlite) should be used as the backend for the virtual cluster
embedded
required object proenabled
required boolean false pro
Enabled defines if the database should be used.
enabled
required boolean false prodataSource
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
dataSource
required string prokeyFile
required string pro
KeyFile is the key file to use for the database. This is optional.
keyFile
required string procertFile
required string pro
CertFile is the cert file to use for the database. This is optional.
certFile
required string procaFile
required string pro
CaFile is the ca file to use for the database. This is optional.
caFile
required string proexternal
required object pro
External defines that an external database should be used as the backend for the virtual cluster
external
required object proenabled
required boolean false pro
Enabled defines if the database should be used.
enabled
required boolean false prodataSource
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
dataSource
required string prokeyFile
required string pro
KeyFile is the key file to use for the database. This is optional.
keyFile
required string procertFile
required string pro
CertFile is the cert file to use for the database. This is optional.
certFile
required string procaFile
required string pro
CaFile is the ca file to use for the database. This is optional.
caFile
required string pro