Helm Charts and repositories
How to use external Helm repositories in Codefresh pipelines
The “Helm Charts” page allows you to integrate with external Helm repositories and Helm charts. Note that all Codefresh accounts already include a built-in Helm repository. Using external Helm repositories is optional.
Adding an external Helm repository
By default, we show you charts from the official Helm repository but you can easily add your own:
In the “Helm Charts” page, click on the “Add Repository” button on the top right.
In the dialog that opened, name your repository, and specify it’s URL. The URL should not include the specific path to
If your repository doesn’t require authentication, click ‘Save’ and you are done. To add an authenticated repository keep reading.
In addition to public repositories, we also support connecting to Helm repositories hosted on private authenticated stores.
You connect to a private repository from the same dialog you would connect to a public one, by selecting any of the authentication options, like S3, or CGS.
The bucket URL should be provided with a protocol scheme relevant to the selected provider, for example for S3, the URL would look like
The rest of the required parameters varies based on the selected provider (see below)
Private repository - HTTP
You can connect to your repository using HTTP Basic authentication:
- Add your repo URL as usually with HTTP protocol.
- Supply the User and Password for HTTP Basic authentication.
|HELMREPO_USERNAME||The username to authenticate with|
|HELMREPO_PASSWORD||The password for the username provided|
Private repository - S3
- Add your S3 bucket URL in the following scheme:
- Supply the AWS authentication variables as you would for the AWS CLI, or the S3 plugin for Helm. See details here: Configuring the AWS CLI.
|AWS_ACCESS_KEY_ID||ID of the key with permissions for the bucket|
|AWS_SECRET_ACCESS_KEY||Secret of the key with permissions for the bucket|
|AWS_DEFAULT_REGION||region where the bucket was created|
Private repository - GCS
- Add your GCS bucket URL in the following scheme:
- Supply the Google authentication variable as you would for the GCloud CLI, or the GCS plugin for Helm. See details here: Creating Service Account.
|GOOGLE_APPLICATION_CREDENTIALS_JSON||The JSON content of the service account credentials|
Private repository - Azure
First make sure that you create the Helm repository in Azure.
Then click Authenticate. You will get a permissions dialog for allowing Codefresh to access the Azure services. Click Accept.
Make sure that you are using an organizational/company Azure account and not a personal one. We are currently working with Microsoft to improve this integration.
Select your Azure subscription on the left drop-down menu and your Helm repository on the right drop-down menu.
If you are already authenticated to Azure, and cannot find your Helm repository in the list, try revoking access and authenticating again.
The Azure Helm integration is now ready.
Using a Helm Repository in a Codefresh pipeline
Once connected, the private Helm repository context can be injected into pipelines by selecting “Import from shared configuration” (under “Environment Variables” section) and selecting the name of the repository.
The repository settings will be injected as environment variables into the pipeline so you can use them as you wish.
If you are using the Helm step, it will use these settings to connect to your authenticated repository automatically. More info on the Codefresh Helm step can be found in the Helm Usage Guide.
Install chart from your Helm repository
In the “Helm Charts” page, locate the chart you would like to install, and click on the Install button.
In the dialog that opened:
- Name your release and choose a version of the chart to install.
- Cluster information:
- Select a Kubernetes cluster and namespace to install to. This should be pre-configured in the Kubernetes Integration, see here.
- Optionally, select the namespace where Tiller is at
- The default values that was provided with the chart will show up, you can press the edit button to view and override them.
- When the default values yaml was changed, it will be provided to helm install as a values file. You can revert back your overriding changed by clicking on the revert button (next to the edit button).
- You can provide additional values files by opening the ‘Import from configuration’ drop down list and selecting “Add new context of type: YAML”. Insert your values YAML here and save. The YAML will be saved for future usage so that next time simply select it from the drop-down list.
- Additionally, you can override some values by adding them in the “Override set variables section”
The order of values configurations matter for helm, values provided last overrides values provided earlier. In the Chart Install wizard values are provided in the following order:
- Default Values in the chart (implicitly part of the chart).
- Overridden default values (provided as values file, provided only if edited by the user).
- Supplied values files from Yaml Shared Configuration.
- Override variables are provided as
From the same dialog you can also provide your own pipeline to be used (instead of the one offered by Codefresh). If you select a custom pipeline the following variables will be available to you:
CF_HELM_RELEASE- name of release
CF_HELM_KUBE_CONTEXT- kubectl context name of target cluster (cluster name from dashboard)
CF_HELM_NAMESPACE- Tiller Namespace if you use Helm 2
CF_HELM_INSTALLATION_NAMESPACE- desired namespace for the release
CF_HELM_CHART_VERSION- Chart Version,
CF_HELM_CHART_NAME- Chart Name
CF_HELM_CONTEXTS- values from shared configuration
CF_HELM_VALUES- extra values
CF_HELM_SET- extra values,
CF_HELM_CHART_REPO_URL- URL of Chart repository
CF_HELM_COMMIT_MESSAGE- Message to show in Helm GUI,
Finally click on Install. You can observe the newly installed release on the “Helm Releases” page.
You can also install Helm releases from any Helm environment board.