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 virtual 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 virtual 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 required object

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

host required object

Host defines what manifests to deploy into the host cluster

manifests required string

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

manifestsTemplate required string

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

vcluster required object

VCluster defines what manifests and charts to deploy into the vCluster

manifests required string

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

manifestsTemplate required string

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

helm required object[]

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

chart required object

Chart defines what chart should get deployed.

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

Release defines what release should get deployed.

name required string

Name of the release

namespace required string

Namespace of the release

values required string

Values defines what values should get used.

timeout required string

Timeout defines the timeout for Helm

bundle required string

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