Deploy vCluster AddOns
Configure addons​
vCluster supports addons that extend the capabilities of your tenant cluster. You can configure these addons during deployment to adjust networking, observability, and other features for your environment and requirements.
Metrics Server​
vCluster can install the Kubernetes Metrics Server into the tenant cluster. Enable it when you need kubectl top output or want the Horizontal Pod Autoscaler to use CPU and memory metrics.
deploy:
metricsServer:
enabled: true
CNI​
vCluster installs Flannel as the Container Network Interface (CNI) by default. You can disable it and install your own CNI.
deploy:
cni:
flannel:
enabled: false
When you disable Flannel, you are responsible for installing and operating a CNI in the tenant cluster. vCluster support does not cover the configuration or behavior of user-managed CNI installations.
Kube proxy​
vCluster installs kube-proxy by default to configure services on worker nodes. If your CNI implements its own service proxy (for example, Cilium in kube-proxy replacement mode), you can disable it.
deploy:
kubeProxy:
enabled: false
To customize kube-proxy behavior without disabling it, use the config field. Values merge into the default KubeProxyConfiguration. See the Kubernetes kube-proxy config API reference for available fields.
deploy:
kubeProxy:
config:
mode: ipvs
ipvs:
scheduler: rr
Use extraArgs to pass additional flags directly to the kube-proxy binary.
MetalLB​
vCluster can install MetalLB into the tenant cluster. Enable this with the following YAML:
deploy:
metallb:
enabled: true
ipAddressPool:
addresses:
- 10.X.X.1-10.X.X.100 # your IPs here
Local Path Provisioner​
vCluster installs the Local Path Provisioner by default to provide a default StorageClass for stateful workloads. If you bring your own storage solution, you can disable it.
deploy:
localPathProvisioner:
enabled: false
When you disable the Local Path Provisioner and replace it with your own StorageClass, vCluster support does not cover your storage configuration. Replacing the provisioner does not affect existing PersistentVolumes, However, new PersistentVolumeClaims do not bind until a replacement provisioner is available.
Control plane components​
CoreDNS and Konnectivity are control plane components, not deploy addons. Configure them under controlPlane in your vcluster.yaml:
- CoreDNS: see CoreDNS configuration
- Konnectivity: configure or disable under
controlPlane.advanced.konnectivity
Config reference​
deploy object ​
Deploy holds configuration for the deployment of vCluster.
deploy object ​kubeProxy object ​
KubeProxy holds dedicated kube proxy configuration.
kubeProxy object ​enabled boolean true ​
Enabled defines if the kube proxy should be enabled.
enabled boolean true ​image string ​
Image is the image for the kube-proxy.
image string ​imagePullPolicy string ​
ImagePullPolicy is the policy how to pull the image.
imagePullPolicy string ​nodeSelector object {} ​
NodeSelector is the node selector for the kube-proxy.
nodeSelector object {} ​priorityClassName string ​
PriorityClassName is the priority class name for the kube-proxy.
priorityClassName string ​tolerations object[] [] ​
Tolerations is the tolerations for the kube-proxy.
tolerations object[] [] ​extraEnv object[] [] ​
ExtraEnv is the extra environment variables for the kube-proxy.
extraEnv object[] [] ​extraArgs string[] [] ​
ExtraArgs are additional arguments to pass to the kube-proxy.
extraArgs string[] [] ​config object {} ​
Config is the config for the kube-proxy that will be merged into the default kube-proxy config. More information can be found here:
https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration
config object {} ​metallb object ​
Metallb holds dedicated metallb configuration.
metallb object ​enabled boolean false ​
Enabled defines if metallb should be enabled.
enabled boolean false ​controllerImage string ​
ControllerImage is the image for metallb controller.
controllerImage string ​speakerImage string ​
SpeakerImage is the image for metallb speaker.
speakerImage string ​cni object ​
CNI holds dedicated CNI configuration.
cni object ​flannel object ​
Flannel holds dedicated Flannel configuration.
flannel object ​enabled boolean true ​
Enabled defines if Flannel should be enabled.
enabled boolean true ​image string ​
Image is the image for Flannel main container.
image string ​initImage string ​
InitImage is the image for Flannel init container.
initImage string ​imagePullPolicy string ​
ImagePullPolicy is the policy how to pull the image.
imagePullPolicy string ​localPathProvisioner object ​
LocalPathProvisioner holds dedicated local path provisioner configuration.
localPathProvisioner object ​enabled boolean true ​
Enabled defines if LocalPathProvisioner should be enabled.
enabled boolean true ​image string ​
Image is the image for local path provisioner.
image string ​imagePullPolicy string ​
ImagePullPolicy is the policy how to pull the image.
imagePullPolicy string ​nodePath string ​
NodePath is the path on the node where to create the persistent volume directories.
nodePath string ​ingressNginx object ​
IngressNginx holds dedicated ingress-nginx configuration.
Deprecated: We do not deploy ingress nginx and the project is being deprecated.
ingressNginx object ​enabled boolean false ​
Enabled defines if ingress-nginx should be enabled.
enabled boolean false ​defaultIngressClass boolean true ​
DefaultIngressClass defines if the deployed ingress class should be the default ingress class.
defaultIngressClass boolean true ​metricsServer object ​
MetricsServer holds dedicated metrics server configuration.
metricsServer object ​enabled boolean false ​
Enabled defines if metrics server should be enabled.
enabled boolean false ​volumeSnapshotController object ​
VolumeSnapshotController holds dedicated CSI snapshot-controller configuration.
volumeSnapshotController object ​enabled boolean false ​
Enabled defines if the CSI volumes snapshot-controller should be enabled.
enabled boolean false ​argoCD object ​
ArgoCD holds dedicated configuration for argoCD Apps to deploy
argoCD object ​applications object[] ​
Applications specifies the applications to deploy. This requires the argo cd integration to be enabled.
applications object[] ​name string ​
Name specifies the stable identifier of the argo cd application. It is used to derive generated
ArgoCDApplication resource names and the final Argo CD application name.
name string ​displayName string ​
DisplayName specifies the display name of the argo cd application.
displayName string ​target string ​
Target specifies the target of the argo cd application. This can be "vCluster" or "host". Defaults to "vCluster".
target string ​inline object ​
Inline specifies the inline argo cd application definition. This requires the argo cd integration to be enabled.
inline object ​template object ​
Template specifies the argo cd application template to use. This requires the argo cd integration to be enabled.
template object ​name string ​
Name specifies the name of the argo cd application template
name string ​parameters object ​
Parameters specifies the parameters to pass to the argo cd application template.
parameters object ​