diff --git a/stable/prometheus/Chart.yaml b/stable/prometheus/Chart.yaml index 914dac5dae..39ef6c2ec2 100755 --- a/stable/prometheus/Chart.yaml +++ b/stable/prometheus/Chart.yaml @@ -1,5 +1,5 @@ name: prometheus -version: 8.4.2 +version: 8.4.3 appVersion: 2.6.0 description: Prometheus is a monitoring system and time series database. home: https://prometheus.io/ diff --git a/stable/prometheus/README.md b/stable/prometheus/README.md index 5162037c34..c0cb9ef8ab 100644 --- a/stable/prometheus/README.md +++ b/stable/prometheus/README.md @@ -101,6 +101,8 @@ Parameter | Description | Default `alertmanager.baseURL` | The external url at which the server can be accessed | `/` `alertmanager.extraArgs` | Additional alertmanager container arguments | `{}` `alertmanager.configMapOverrideName` | Prometheus alertmanager ConfigMap override where full-name is `{{.Release.Name}}-{{.Values.alertmanager.configMapOverrideName}}` and setting this value will prevent the default alertmanager ConfigMap from being generated | `""` +`alertmanager.configFromSecret` | The name of a secret in the same kubernetes namespace which contains the Alertmanager config, setting this value will prevent the default alertmanager ConfigMap from being generated | `""` +`alertmanager.configFileName` | The configuration file name to be loaded to alertmanager. Must match the key within configuration loaded from ConfigMap/Secret. | `alertmanager.yml` `alertmanager.ingress.enabled` | If true, alertmanager Ingress will be created | `false` `alertmanager.ingress.annotations` | alertmanager Ingress annotations | `{}` `alertmanager.ingress.extraLabels` | alertmanager Ingress additional labels | `{}` diff --git a/stable/prometheus/templates/alertmanager-configmap.yaml b/stable/prometheus/templates/alertmanager-configmap.yaml index 1bc77f12c4..f2d78e2f6c 100644 --- a/stable/prometheus/templates/alertmanager-configmap.yaml +++ b/stable/prometheus/templates/alertmanager-configmap.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.alertmanager.enabled (empty .Values.alertmanager.configMapOverrideName) -}} +{{- if and .Values.alertmanager.enabled (and (empty .Values.alertmanager.configMapOverrideName) (empty .Values.alertmanager.configFromSecret)) -}} apiVersion: v1 kind: ConfigMap metadata: diff --git a/stable/prometheus/templates/alertmanager-deployment.yaml b/stable/prometheus/templates/alertmanager-deployment.yaml index d8a677faf1..668ffb7db3 100644 --- a/stable/prometheus/templates/alertmanager-deployment.yaml +++ b/stable/prometheus/templates/alertmanager-deployment.yaml @@ -49,7 +49,7 @@ spec: apiVersion: v1 fieldPath: status.podIP args: - - --config.file=/etc/config/alertmanager.yml + - --config.file=/etc/config/{{ .Values.alertmanager.configFileName }} - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }} - --cluster.advertise-address=$(POD_IP):6783 {{- range $key, $value := .Values.alertmanager.extraArgs }} @@ -110,8 +110,13 @@ spec: {{- end }} volumes: - name: config-volume + {{- if empty .Values.alertmanager.configFromSecret }} configMap: name: {{ if .Values.alertmanager.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.alertmanager.configMapOverrideName }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }} + {{- else }} + secret: + secretName: {{ .Values.alertmanager.configFromSecret }} + {{- end }} - name: storage-volume {{- if .Values.alertmanager.persistentVolume.enabled }} persistentVolumeClaim: diff --git a/stable/prometheus/values.yaml b/stable/prometheus/values.yaml index 9642c6bc9a..388fe41d57 100644 --- a/stable/prometheus/values.yaml +++ b/stable/prometheus/values.yaml @@ -67,6 +67,17 @@ alertmanager: ## configMapOverrideName: "" + ## The name of a secret in the same kubernetes namespace which contains the Alertmanager config + ## Defining configFromSecret will cause templates/alertmanager-configmap.yaml + ## to NOT generate a ConfigMap resource + ## + configFromSecret: "" + + ## The configuration file name to be loaded to alertmanager + ## Must match the key within configuration loaded from ConfigMap/Secret + ## + configFileName: alertmanager.yml + ingress: ## If true, alertmanager Ingress will be created ##