Add Helm Hub as a remote repository on Artifactory

3/12/2019

I have been serving Helm Stable as a remote repository in Artifactory for a few months now with no issue, however one of the charts I use has recently moved on to Helm hub. Try as I may, I cannot seem to get Artifactory to recognise this as a remote repo.I have tried adding both https://hub.helm.sh/ and https://charts.jetstack.io (The chart in question is Jetstack's cert-manager) to no avail. It just shows up as empty in Artifactory.

Does anyone have any experience getting Artifactory remote repos working with Helm Hub?

-- mehstg
artifactory
kubernetes
kubernetes-helm

2 Answers

3/20/2019

In Artifactory, to create a remote Helm repository for https://charts.jetstack.io content, "Bypass HEAD Requests" in the advanced settings must be enabled. This is because Artifactory first makes a HEAD request for /index.yaml, to which charts.jetstack.io responds with a 404:

$ curl -siXHEAD https://charts.jetstack.io/index.yaml
HTTP/1.1 404 Not Found
Server: nginx/1.15.6
...
-- John Bartko
Source: StackOverflow

3/20/2019

You need to add jetstack repo with below command.

helm repo add jetstack https://charts.jetstack.io

if this helm repo is already added, we can update with

helm update

then if you run helm search jetstack you'll find your chart as below:

NAME                    CHART VERSION   APP VERSION DESCRIPTION
jetstack/cert-manager   v0.7.0          v0.7.0      A Helm chart for cert-manager
jetstack/tor-proxy      0.1.1                       A Helm chart for Kubernetes

Note

  • For successful deployment, you should install CRDs before helm install
kubectl apply \
   -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.7/deploy/manifests/00-crds.yaml
  • If you're installing helm chart in some XX namespace which is already existed, you should label this XX namespace with certmanager.k8s.io/disable-validation="true"
kubectl label namespace XX certmanager.k8s.io/disable-validation="true"

Last

to install run below command helm install --name my-release --namespace XX jetstack/cert-manager

-- Abu Hanifa
Source: StackOverflow