Several months ago, we noticed that our Jenkins-X pipeline is failing at promotion stage due to Bitnami’s helm chart repo index being trimmed. There was a one-liner fix but because the full index is too large, we get intermittent failures and I decided to fix it once and for all.
This is how our
helmfile.yaml originally looks like:
filepath: "" environments: default: values: - jx-values.yaml repositories: - name: bitnami url: https://raw.githubusercontent.com/bitnami/charts/index/bitnami releases: - chart: bitnami/mongodb version: 11.1.10 name: user-service-mongodb namespace: jx-staging values: - user-service-mongodb-values.yaml - jx-values.yaml
Because Bitnami is hosting so many helm charts and versions being added almost every day, the index grows significantly over time and the one-liner fix is not enough anymore. I decided to just host the index file using our own Github repo and just include the chart and version that we need, that is, the mongodb helm chart v11.1.10.
Upgrading mongodb helm chart is not an option as it is too much work and we will eventually have to migrate again since the index is still growing. Below is the example repo to show the changes we’ve made.
Since we are only interested with mongodb and its specific version, the resulting
index.yaml file is small that it loads blazingly fast! Below is our updated
filepath: "" environments: default: values: - jx-values.yaml repositories: - name: lysender-mongodb url: https://raw.githubusercontent.com/lysender/bitnami-old-mongodb-helm-charts/master/mongodb releases: - chart: lysender-mongodb/mongodb version: 11.1.10 name: user-service-mongodb namespace: jx-staging values: - user-service-mongodb-values.yaml - jx-values.yaml
We changed the repo alias from
bitnami to something else like
lysender-mongodb to avoid conflicts with other hemlfile.yaml since Jenkins-X also use bitnami for helm charts like
Working with Kubernetes and Jenkins-X has given me a lot of opportunities to learn but they tend to move too fast and break things. Luckily we can afford when things break and we usually are able to recover quickly due to the experience that we had.
Featured image by Miguel Á. Padriñán.