Skip to main content

Helm Charts

Applying charts on vCluster initialization

vCluster now supports applying helm charts while initializing a new vCluster. Currently 2 methods of applying charts are supported:

  1. Upstream Mode
  2. Bundle Mode
info

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

Upstream Mode

This is the most straightforward approach of applying a helm chart existing in and public/private upstream chart repository. The following examples demonstrate the usage:

init:
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://<address/to/private/repo>
version: <chart version>
username: <username_for_private_repo>
password: <password_for_private_repo>
release:
name: my-release
namespace: my-release-namespace

Bundle Mode

If you're interested in applying a local chart directory, or a chart pulled from a repo that exists locally as a tar archive, then bundle mode can come handy. Let's say we have a chart named my-chart.tar.gz in the current directory, we can use the bundle mode to deploy it during vCluster initialization as follows:

# copy the chart to your clipboard
cat my-chart.tar.gz | base64 | pbcopy

Next, we can paste the bundle in our values file:

init:
helm:
- bundle: <base64_encoded_tar_bundle>
chart:
name: my-chart
version: <chart version>
values: |-
foo: bar
release:
name: my-release
namespace: my-namespace