Skip to main content

Experimental deploy

Experimental Feature

This feature is experimental. Breaking changes may occur between releases. It may become Enterprise-only or be deprecated. Not recommended for production use.

Supported Configurations
Running the control plane as a container with:

Apply manifests on initialization in vCluster

Apply Kubernetes manifests when the tenant cluster starts. This is useful for configuring internal vCluster resources. For example:

experimental:
deploy:
vcluster:
manifests: |-
apiVersion: v1
kind: Service
...
apiVersion: v1
kind: ConfigMap
...

Apply manifest templates on initialization in vCluster

Add a manifest template that uses Helm values. For example:

experimental:
deploy:
vcluster:
manifestsTemplate: |-
apiVersion: v1
kind: ConfigMap
data:
example: {{ .Release.Name }}

Apply Helm charts on initialization in vCluster

Upstream chart

Apply a Helm chart from public and private upstream chart repositories. This example deploys from public and private:

experimental:
deploy:
vcluster:
helm:
# public chart
- chart:
name: cert-manager
repo: https://charts.jetstack.io
version: v1.8.0
# optional field
values: |-
installCRDs: true
release:
name: cert-manager
namespace: cert-manager
# private chart
- chart:
name: my-chart
repo: https://my-company.com/private-repo/
version: 1.0
username: my-username
password: my-password
release:
name: my-release
namespace: my-release-namespace

Local chart

Apply a chart that exists locally as a compressed tar archive.

experimental:
deploy:
vcluster:
helm:
bundle: COMPRESSED_STRING

Replace COMPRESSED_STRING with a compressed base64 string that has the chart's contents, which are then directly embedded in the vCluster values file.

Apply manifests on initialization in host

Apply Kubernetes manifests when the tenant cluster starts into the host namespace. This is useful for configuring external vCluster resources. For example:

experimental:
deploy:
host:
manifests: |-
apiVersion: v1
kind: Secret
...
apiVersion: v1
kind: ConfigMap
...
manifestsTemplate: |-
apiVersion: v1
kind: ConfigMap
data:
example: {{ .Release.Name }}

Config reference

info

The experimental.deploy.vcluster.helm[].chart.version scheme only supports absolute versions and not any constraints.

deploy object

Deploy allows you to configure manifests and Helm charts to deploy within the host or virtual cluster.

host object

Host defines what manifests to deploy into the host cluster

manifests string

Manifests are raw Kubernetes manifests that should get applied within the host cluster.

manifestsTemplate string

ManifestsTemplate is a Kubernetes manifest template that will be rendered with vCluster values before applying it within the host cluster.

vcluster object

VCluster defines what manifests and charts to deploy into the vCluster

manifests string

Manifests are raw Kubernetes manifests that should get applied within the virtual cluster.

manifestsTemplate string

ManifestsTemplate is a Kubernetes manifest template that will be rendered with vCluster values before applying it within the virtual cluster.

helm object[]

Helm are Helm charts that should get deployed into the virtual cluster

chart object

Chart defines what chart should get deployed.

name string
repo string
insecure boolean
version string
username string
password string
release object

Release defines what release should get deployed.

name string

Name of the release

namespace string

Namespace of the release

values string

Values defines what values should get used.

timeout string

Timeout defines the timeout for Helm

bundle string

Bundle allows to compress the Helm chart and specify this instead of an online chart