Configuring a custom Helm repository with BEL's lifecycle automation

BEL’s lifecycle automation for Linkerd manages BEL installs via Helm charts. By default, it uses the publicly-available Helm charts at https://helm.buoyant.cloud. However, you may choose to host these Helm charts internally in a private and/or airgapped environment. This guide demonstrates how to configure the BEL lifecycle automation operator to use a custom Helm repository.

Prerequisites

Step 1: Create a config file

Set helmRepoPrefix to your own custom Helm repository, and save this file as custom-helm-repository-values.yaml:

custom-helm-repository-values.yaml
controlPlaneOperator:
  helmRepoPrefix: "http://example.com:5000"
  helmNoTLS: true
custom-helm-repository-values.yaml
controlPlaneOperator:
  helmRepoPrefix: "https://example.com:5000"
  # If you are using a private CA, configure the operator to use it:
  additionalVolumes:
    - name: private-ca
      secret:
        secretName: private-ca
  additionalVolumeMounts:
    - mountPath: /etc/ssl/certs/private-ca.pem
      name: private-ca
      readOnly: true
      subPath: private-ca.pem

If you are using a private CA, configure the operator to use it:

kubectl create ns linkerd-buoyant
kubectl -n linkerd-buoyant create secret generic private-ca --from-file=private-ca.pem=rootCA.pem

Step 2: Install the BEL lifecycle automation operator

Next, install the BEL lifecycle automation operator referencing the file created in the previous step.

helm install linkerd-buoyant \
  --create-namespace \
  --namespace linkerd-buoyant \
  --set buoyantCloudEnabled=false \
  --set license=$BUOYANT_LICENSE \
  --values custom-helm-repository-values.yaml \
  linkerd-buoyant/linkerd-buoyant

Learning more

For more information about using BEL’s lifecycle automation, see the Lifecycle automation reference page.