Skip to content

Helm Support

You can use the Helm construct in order to include Helm charts.

Note

You will need helm to be installed locally for this feature. For accessing private helm repositories, you must be authenticated to the repository in a way that the helm pull command recognizes.

The following example adds the bitnami/redis Helm chart with sentinel containers enabled:

The Bitnami helm repo needs to be added through: helm repo add bitnami https://charts.bitnami.com/bitnami

For accessing private helm repositories, you must be authenticated to the repository in a way that the helm template command recognizes.

class MyChart extends cdk8s.Chart {
  constructor(scope: Construct, id: string) {
    super(scope, id);

    const redis = new Helm(this, 'redis', {
      chart: 'bitnami/redis',
      values: {
        sentinel: {
          enabled: true
        }
      }
    });
  }
}

The Helm construct will render the manifest from the specified chart by executing helm template. If values is specified, these values will override the default values included with the chart.

The name option can be used to specify the chart’s release name. If not specified, a valid and unique release name will be allocated based on the construct path.

The Helm construct extends Include and inherits it’s API. For example, you can use the apiObjects property to find and interact with included API objects.

The following example shows how to add an annotation to the Redis master deployment:

const master = redis.apiObjects.find(o => o.name === 'foo-redis-master');
master.metadata.addAnnotation('my.annotation', 'hey-there');