Warm tip: This article is reproduced from stackoverflow.com, please click
kubernetes kubernetes-helm prometheus prometheus-operator

helm values from kubernetes secrets?

发布于 2020-04-17 12:22:54

I am using this chart : https://github.com/helm/charts/tree/master/stable/prometheus-mongodb-exporter

This chart requires MONGODB_URI environment variable or mongodb.uri populated in values.yaml file, Since this is a connection string I don't want to check-in that into git. I was thinking of kubernetes secrets and provide the connection string from kubernetes secrets. I have not been able to successfully find a solution for this one.

I also tried creating another helm chart and using this one as a dependency for that chart and provide value for MONGODB_URI from secrets.yaml but that also didn't work because in prometheus-mongodb-exporter chart MONGODB_URI is defined as a required value which is then passed into secrets.yaml file within that chart, so dependency chart never gets installed because of that.

What would be the best way of achieving this?

Questioner
Asav Patel
Viewed
69
Kamol Hasan 2020-02-04 14:02

Solution 1: Create custom chart


  1. Delete the secret.yaml from chart's template directory.
  2. Create the k8s secret on your own, maybe named cumstom-secret
  3. Edit the deployment.yaml: here
       - name: MONGODB_URI
         valueFrom:
           secretKeyRef:
             name: custom-secret ## {{ include "prometheus-mongodb-exporter.fullname" . }}##
             key: mongodb-uri

Solution 2: Use original chart


  1. Set a dummy value for mongodb.uri in value.yaml.
  2. Use --set flag to overwrite the dummy value with original while installing the chart. So, your git won't have the history.
$ helm install prometheus-mongodb-exporter stable/prometheus-mongodb-exporter --set mongodb.uri=******