Introduction
This article will cover the steps for creating a Remote Helm repository on your Artifactory instance to proxy external-secrets.io Helm charts.
1. Configure the Remote Repository
Create Helm remote repository “external-secrets-remote” and update its configuration with the below URLs to ensure packages are downloaded from the correct GitHub releases endpoint:
*If you are updating an existing repository, please delete the contents of the remote-cache repository to ensure no broken or outdated artifacts remain.
2. Configure the Virtual Repository
The Artifactory Helm client requires the use of a Virtual repository to properly calculate the index.yaml and resolve packages.
-
Create a new Virtual Helm repository.
-
Aggregate a local Helm repository (for your internal deployments) and the external-secrets-remote repository you configured in Step 1 under this Virtual repository.
*If this is not a new Virtual repository, you must clear the virtual cache to ensure Artifactory fetches a completely fresh index.yaml file from the upstream source rather than serving a stale one.
-
Delete the existing index.yaml file from the local / remote-cache repository.
-
In the Artifacts tree browser, right-click your Helm Virtual repository.
-
Select Zap Cache and confirm.
3. Clear Your Local Machine's Helm Cache
To prevent your local Helm client from using corrupted or outdated local metadata, clear your machine's Helm cache.
4. Update and Pull the Chart
Finally, update your local Helm repository index and test the pull command against your Artifactory Virtual repository. Note: Replace <virtual-repo> with your actual local alias for the repository.
Bash
$ helm repo add <virtual-repo> <RT_URL>/artifactory/api/helm/<virtual-repo>
$ helm repo update <virtual-repo>
$ helm pull <virtual-repo>/external-secrets --version 2.3.0
Please make sure these URLs are whitelisted:
-
"charts.external-secrets.io" - from remote URL
-
"github.com" - from Charts Base URL.
-
"release-assets.githubusercontent.com" (github.com redirects to this GitHub CDN domain to serve the actual .tgz binary file)