diff --git a/bitnami/prometheus-operator/Chart.yaml b/bitnami/prometheus-operator/Chart.yaml index fec900961..1665498d0 100644 --- a/bitnami/prometheus-operator/Chart.yaml +++ b/bitnami/prometheus-operator/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: 0.39.0 description: The Prometheus Operator for Kubernetes provides easy monitoring definitions for Kubernetes services and deployment and management of Prometheus instances. name: prometheus-operator -version: 0.16.3 +version: 0.17.0 keywords: - prometheus - alertmanager diff --git a/bitnami/prometheus-operator/README.md b/bitnami/prometheus-operator/README.md index fad935af3..e81c515ec 100644 --- a/bitnami/prometheus-operator/README.md +++ b/bitnami/prometheus-operator/README.md @@ -237,65 +237,66 @@ The following table lists the configurable parameters of the Prometheus Operator ### Alertmanager Parameters -| Parameter | Description | Default | -|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `alertmanager.enabled` | Deploy Alertmanager to the cluster | `true` | -| `alertmanager.image.registry` | Prometheus image registry | `docker.io` | -| `alertmanager.image.repository` | Prometheus Image name | `bitnami/alertmanager` | -| `alertmanager.image.tag` | Prometheus Image tag | `{TAG_NAME}` | -| `alertmanager.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `alertmanager.serviceAccount.create` | Specify whether to create a ServiceAccount for Alertmanager | `true` | -| `alertmanager.serviceAccount.name` | The name of the ServiceAccount to create | Generated using the `prometheus-operator.alertmanager.fullname` template | -| `alertmanager.securityContext.enabled` | Enable security context | `true` | -| `alertmanager.securityContext.fsGroup` | Group ID for the container filesystem | `1001` | -| `alertmanager.securityContext.runAsUser` | User ID for the container | `1001` | -| `alertmanager.podDisruptionBudget.enabled` | Create a pod disruption budget for Alertmanager | `true` | -| `alertmanager.podDisruptionBudget.minAvailable` | Minimum number / percentage of pods that should remain scheduled | `1` | -| `alertmanager.podDisruptionBudget.minAvailable` | Maximum number / percentage of pods that may be made unavailable | `nil` | -| `alertmanager.service.type` | Kubernetes service type | `ClusterIP` | -| `alertmanager.service.port` | Alertmanager service port | `9093` | -| `alertmanager.service.clusterIP` | Specific cluster IP when service type is cluster IP. Use `None` for headless service | `nil` | -| `alertmanager.service.nodePort` | Kubernetes Service nodePort | `nil` | -| `alertmanager.service.loadBalancerIP` | `loadBalancerIP` if service type is `LoadBalancer` | `nil` | -| `alertmanager.service.loadBalancerSourceRanges` | Address that are allowed when svc is `LoadBalancer` | `[]` | -| `alertmanager.service.annotations` | Additional annotations for Alertmanager service | `{}` | -| `alertmanager.serviceMonitor.enabled` | Creates a ServiceMonitor to monitor Alertmanager | `true` | -| `alertmanager.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` | -| `alertmanager.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` | -| `alertmanager.serviceMonitor.relabelings` | Relabel configs | `[]` | -| `alertmanager.ingress.enabled` | Enable ingress controller resource | `false` | -| `alertmanager.ingress.certManager` | Add annotations for cert-manager | `false` | -| `alertmanager.ingress.annotations` | Ingress annotations | `[]` | -| `alertmanager.ingress.hosts[0].name` | Hostname to your Alertmanager installation | `alertmanager.local` | -| `alertmanager.ingress.hosts[0].path` | Path within the url structure | `/` | -| `alertmanager.ingress.tls[0].hosts[0]` | TLS hosts | `alertmanager.local` | -| `alertmanager.ingress.tls[0].secretName` | TLS Secret (certificates) | `alertmanager.local-tls` | -| `alertmanager.resources` | CPU/Memory resource requests/limits for node | `{}` | -| `alertmanager.nodeAffinity` | Node Affinity (this value is evaluated as a template) | `{}` | -| `alertmanager.podAntiAffinity` | Pod anti-affinity policy | `soft` | -| `alertmanager.podAffinity` | Affinity, in addition to antiAffinity (this value is evaluated as a template) | `{}` | -| `alertmanager.nodeSelector` | Node labels for pod assignment (this value is evaluated as a template) | `{}` | -| `alertmanager.tolerations` | List of node taints to tolerate (this value is evaluated as a template) | `[]` | -| `alertmanager.config` | Alertmanager configuration directive | `{"global":{"resolve_timeout":"5m"},"route":{"group_by":["job"],"group_wait":"30s","group_interval":"5m","repeat_interval":"12h","receiver":"null","routes":[{"match":{"alertname":"Watchdog"},"receiver":"null"}]},"receivers":[{"name":"null"}]}` | -| `alertmanager.replicaCount` | Number of Alertmanager replicas desired | `1` | -| `alertmanager.logLevel` | Log level for Alertmanager | `info` | -| `alertmanager.logFormat` | Log format for Alertmanager | `logfmt` | -| `alertmanager.podMetadata` | Standard object’s metadata | `{}` | -| `alertmanager.secrets` | Secrets that should be mounted into the Alertmanager Pods | `[]` | -| `alertmanager.configMaps` | ConfigMaps that should be mounted into the Alertmanager Pods | `[]` | -| `alertmanager.retention` | Metrics retention days | `10d` | -| `alertmanager.storageSpec` | Alertmanager StorageSpec for persistent data | `{}` | -| `alertmanager.persistence.enabled` | Use PVCs to persist data. If the storageSpec is provided this will not take effect. | `false` | -| `alertmanager.persistence.storageClass` | Persistent Volume Storage Class | `generic` | -| `alertmanager.persistence.accessModes` | Persistent Volume Access Modes | `[ReadWriteOnce]` | -| `alertmanager.persistence.size` | Persistent Volume Size | `8Gi` | -| `alertmanager.paused` | If true, the Operator won't process any Alertmanager configuration changes | `false` | -| `alertmanager.listenLocal` | ListenLocal makes the Alertmanager server listen on loopback | `false` | -| `alertmanager.containers` | Containers allows injecting additional containers | `[]` | -| `prometheus.volumes` | Volumes allows configuration of additonal volumes. Evaluated as a template | `[]` See [docs](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec) for details | -| `prometheus.volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template | `[]` See [docs](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec) for details | -| `alertmanager.priorityClassName` | Priority class assigned to the Pods | `` | -| `alertmanager.additionalPeers` | AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster | `[]` | +| Parameter | Description | Default | +| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `alertmanager.enabled` | Deploy Alertmanager to the cluster | `true` | +| `alertmanager.image.registry` | Prometheus image registry | `docker.io` | +| `alertmanager.image.repository` | Prometheus Image name | `bitnami/alertmanager` | +| `alertmanager.image.tag` | Prometheus Image tag | `{TAG_NAME}` | +| `alertmanager.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | +| `alertmanager.serviceAccount.create` | Specify whether to create a ServiceAccount for Alertmanager | `true` | +| `alertmanager.serviceAccount.name` | The name of the ServiceAccount to create | Generated using the `prometheus-operator.alertmanager.fullname` template | +| `alertmanager.securityContext.enabled` | Enable security context | `true` | +| `alertmanager.securityContext.fsGroup` | Group ID for the container filesystem | `1001` | +| `alertmanager.securityContext.runAsUser` | User ID for the container | `1001` | +| `alertmanager.podDisruptionBudget.enabled` | Create a pod disruption budget for Alertmanager | `true` | +| `alertmanager.podDisruptionBudget.minAvailable` | Minimum number / percentage of pods that should remain scheduled | `1` | +| `alertmanager.podDisruptionBudget.minAvailable` | Maximum number / percentage of pods that may be made unavailable | `nil` | +| `alertmanager.service.type` | Kubernetes service type | `ClusterIP` | +| `alertmanager.service.port` | Alertmanager service port | `9093` | +| `alertmanager.service.clusterIP` | Specific cluster IP when service type is cluster IP. Use `None` for headless service | `nil` | +| `alertmanager.service.nodePort` | Kubernetes Service nodePort | `nil` | +| `alertmanager.service.loadBalancerIP` | `loadBalancerIP` if service type is `LoadBalancer` | `nil` | +| `alertmanager.service.loadBalancerSourceRanges` | Address that are allowed when svc is `LoadBalancer` | `[]` | +| `alertmanager.service.annotations` | Additional annotations for Alertmanager service | `{}` | +| `alertmanager.serviceMonitor.enabled` | Creates a ServiceMonitor to monitor Alertmanager | `true` | +| `alertmanager.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` | +| `alertmanager.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` | +| `alertmanager.serviceMonitor.relabelings` | Relabel configs | `[]` | +| `alertmanager.ingress.enabled` | Enable ingress controller resource | `false` | +| `alertmanager.ingress.certManager` | Add annotations for cert-manager | `false` | +| `alertmanager.ingress.annotations` | Ingress annotations | `[]` | +| `alertmanager.ingress.hosts[0].name` | Hostname to your Alertmanager installation | `alertmanager.local` | +| `alertmanager.ingress.hosts[0].path` | Path within the url structure | `/` | +| `alertmanager.ingress.tls[0].hosts[0]` | TLS hosts | `alertmanager.local` | +| `alertmanager.ingress.tls[0].secretName` | TLS Secret (certificates) | `alertmanager.local-tls` | +| `alertmanager.resources` | CPU/Memory resource requests/limits for node | `{}` | +| `alertmanager.nodeAffinity` | Node Affinity (this value is evaluated as a template) | `{}` | +| `alertmanager.podAntiAffinity` | Pod anti-affinity policy | `soft` | +| `alertmanager.podAffinity` | Affinity, in addition to antiAffinity (this value is evaluated as a template) | `{}` | +| `alertmanager.nodeSelector` | Node labels for pod assignment (this value is evaluated as a template) | `{}` | +| `alertmanager.tolerations` | List of node taints to tolerate (this value is evaluated as a template) | `[]` | +| `alertmanager.config` | Alertmanager configuration directive | `{"global":{"resolve_timeout":"5m"},"route":{"group_by":["job"],"group_wait":"30s","group_interval":"5m","repeat_interval":"12h","receiver":"null","routes":[{"match":{"alertname":"Watchdog"},"receiver":"null"}]},"receivers":[{"name":"null"}]}` | +| `alertmanager.externalConfig` | Alertmanager configuration is created externally. If true, `alertmanager.config` is ignored, and a secret will not be created. | `false` See [docs](https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting) for details | +| `alertmanager.replicaCount` | Number of Alertmanager replicas desired | `1` | +| `alertmanager.logLevel` | Log level for Alertmanager | `info` | +| `alertmanager.logFormat` | Log format for Alertmanager | `logfmt` | +| `alertmanager.podMetadata` | Standard object’s metadata | `{}` | +| `alertmanager.secrets` | Secrets that should be mounted into the Alertmanager Pods | `[]` | +| `alertmanager.configMaps` | ConfigMaps that should be mounted into the Alertmanager Pods | `[]` | +| `alertmanager.retention` | Metrics retention days | `10d` | +| `alertmanager.storageSpec` | Alertmanager StorageSpec for persistent data | `{}` | +| `alertmanager.persistence.enabled` | Use PVCs to persist data. If the storageSpec is provided this will not take effect. | `false` | +| `alertmanager.persistence.storageClass` | Persistent Volume Storage Class | `generic` | +| `alertmanager.persistence.accessModes` | Persistent Volume Access Modes | `[ReadWriteOnce]` | +| `alertmanager.persistence.size` | Persistent Volume Size | `8Gi` | +| `alertmanager.paused` | If true, the Operator won't process any Alertmanager configuration changes | `false` | +| `alertmanager.listenLocal` | ListenLocal makes the Alertmanager server listen on loopback | `false` | +| `alertmanager.containers` | Containers allows injecting additional containers | `[]` | +| `prometheus.volumes` | Volumes allows configuration of additonal volumes. Evaluated as a template | `[]` See [docs](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec) for details | +| `prometheus.volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template | `[]` See [docs](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec) for details | +| `alertmanager.priorityClassName` | Priority class assigned to the Pods | `` | +| `alertmanager.additionalPeers` | AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster | `[]` | ### Exporters diff --git a/bitnami/prometheus-operator/templates/alertmanager/secrets.yaml b/bitnami/prometheus-operator/templates/alertmanager/secrets.yaml index a82058238..8ccdb1e3f 100644 --- a/bitnami/prometheus-operator/templates/alertmanager/secrets.yaml +++ b/bitnami/prometheus-operator/templates/alertmanager/secrets.yaml @@ -1,4 +1,4 @@ -{{- if .Values.alertmanager.enabled }} +{{- if (and .Values.alertmanager.enabled (not .Values.alertmanager.externalConfig) ) }} apiVersion: v1 kind: Secret metadata: diff --git a/bitnami/prometheus-operator/values-production.yaml b/bitnami/prometheus-operator/values-production.yaml index 15649e467..fe6617fb5 100644 --- a/bitnami/prometheus-operator/values-production.yaml +++ b/bitnami/prometheus-operator/values-production.yaml @@ -42,7 +42,7 @@ operator: image: registry: docker.io repository: bitnami/prometheus-operator - tag: 0.39.0-debian-10-r0 + tag: 0.39.0-debian-10-r3 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images @@ -208,7 +208,7 @@ operator: image: registry: docker.io repository: bitnami/configmap-reload - tag: 0.3.0-debian-10-r108 + tag: 0.3.0-debian-10-r110 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -239,7 +239,7 @@ prometheus: image: registry: docker.io repository: bitnami/prometheus - tag: 2.18.1-debian-10-r2 + tag: 2.18.1-debian-10-r4 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -633,7 +633,7 @@ alertmanager: image: registry: docker.io repository: bitnami/alertmanager - tag: 0.20.0-debian-10-r107 + tag: 0.20.0-debian-10-r110 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -800,6 +800,16 @@ alertmanager: receivers: - name: 'null' + ## Alertmanager configuration is created externally + ## If true, `alertmanager.config` is ignored, and a secret will not be created. + ## + ## Alertmanager requires a secret named `alertmanager-{{ template "prometheus-operator.alertmanager.fullname" . }}` + ## It must contain: + ## alertmanager.yaml: + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting + ## + externalConfig: false + ## Desired number of Alertmanager nodes ## replicaCount: 3 diff --git a/bitnami/prometheus-operator/values.yaml b/bitnami/prometheus-operator/values.yaml index e416a0256..99f974ea6 100644 --- a/bitnami/prometheus-operator/values.yaml +++ b/bitnami/prometheus-operator/values.yaml @@ -42,7 +42,7 @@ operator: image: registry: docker.io repository: bitnami/prometheus-operator - tag: 0.39.0-debian-10-r0 + tag: 0.39.0-debian-10-r3 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images @@ -208,7 +208,7 @@ operator: image: registry: docker.io repository: bitnami/configmap-reload - tag: 0.3.0-debian-10-r108 + tag: 0.3.0-debian-10-r110 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -239,7 +239,7 @@ prometheus: image: registry: docker.io repository: bitnami/prometheus - tag: 2.18.1-debian-10-r2 + tag: 2.18.1-debian-10-r4 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -639,7 +639,7 @@ alertmanager: image: registry: docker.io repository: bitnami/alertmanager - tag: 0.20.0-debian-10-r107 + tag: 0.20.0-debian-10-r110 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ @@ -805,6 +805,16 @@ alertmanager: receiver: 'null' receivers: - name: 'null' + + ## Alertmanager configuration is created externally + ## If true, `alertmanager.config` is ignored, and a secret will not be created. + ## + ## Alertmanager requires a secret named `alertmanager-{{ template "prometheus-operator.alertmanager.fullname" . }}` + ## It must contain: + ## alertmanager.yaml: + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting + ## + externalConfig: false ## Desired number of Alertmanager nodes ##