You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2023/03/08 10:54:39 UTC
[dubbo-admin] branch refactor-with-go updated: update tpl (#1016)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch refactor-with-go
in repository https://gitbox.apache.org/repos/asf/dubbo-admin.git
The following commit(s) were added to refs/heads/refactor-with-go by this push:
new 49f3a1fc update tpl (#1016)
49f3a1fc is described below
commit 49f3a1fc95eaba72a27971b17cb664f4f624a6ab
Author: mfordjody <11...@qq.com>
AuthorDate: Wed Mar 8 18:54:30 2023 +0800
update tpl (#1016)
---
.../dubbo-admin/templates/_charts.tpl} | 0
.../grafana/templates/_charts.tpl} | 0
.../nacos/templates/_charts.tpl} | 0
.../admin-stack/charts/prometheus/.helmignore | 2 +-
.../admin-stack/charts/prometheus/Chart.yaml | 2 +-
.../prometheus/charts/alertmanager/.helmignore | 6 +-
.../prometheus/charts/alertmanager/Chart.yaml | 2 +-
.../charts/alertmanager/templates/_charts.tpl | 121 ++--
.../charts/alertmanager/templates/clusterrole.yaml | 8 +-
.../alertmanager/templates/clusterrolebinding.yaml | 14 +-
.../charts/alertmanager/templates/configmap.yaml | 22 +-
.../charts/alertmanager/templates/deploy.yaml | 219 -------
.../charts/alertmanager/templates/ingress.yaml | 84 ++-
.../alertmanager/templates/networkpolicy.yaml | 6 +-
.../charts/alertmanager/templates/pdb.yaml | 13 +-
.../charts/alertmanager/templates/psp.yaml | 10 +-
.../charts/alertmanager/templates/pvc.yaml | 52 --
.../charts/alertmanager/templates/role.yaml | 10 +-
.../charts/alertmanager/templates/rolebinding.yaml | 16 +-
.../charts/alertmanager/templates/service.yaml | 86 +--
.../alertmanager/templates/serviceaccount.yaml | 13 +-
.../charts/alertmanager/templates/statefulset.yaml | 214 +++++++
.../charts/alertmanager/templates/sts.yaml | 196 ------
.../alertmanager/templates/svc-headless.yaml | 46 --
.../prometheus/charts/alertmanager/values.yaml | 624 +++++++------------
.../charts/kube-state-metrics/.helmignore | 2 -
.../charts/kube-state-metrics/Chart.yaml | 35 +-
.../kube-state-metrics/templates/_charts.tpl | 60 +-
.../templates/clusterrolebinding.yaml | 2 +-
.../kube-state-metrics/templates/deployment.yaml | 165 ++++-
.../charts/kube-state-metrics/templates/pdb.yaml | 4 +
.../templates/podsecuritypolicy.yaml | 2 +-
.../templates/psp-clusterrole.yaml | 2 +-
.../templates/psp-clusterrolebinding.yaml | 2 +-
...{kubeconfig-secret.yaml => rbac-configmap.yaml} | 21 +-
.../charts/kube-state-metrics/templates/role.yaml | 22 +-
.../kube-state-metrics/templates/rolebinding.yaml | 29 +-
.../{kubeconfig-secret.yaml => secret.yaml} | 2 +-
.../kube-state-metrics/templates/service.yaml | 14 +
.../templates/serviceaccount.yaml | 4 +-
.../templates/servicemonitor.yaml | 31 +-
.../{stsdiscovery-role.yaml => sts-role.yaml} | 2 +-
...overy-rolebinding.yaml => sts-rolebinding.yaml} | 2 +-
.../templates/verticalpodautoscaler.yaml | 49 ++
.../charts/kube-state-metrics/values.yaml | 155 ++++-
.../prometheus/charts/node-exporter/.helmignore | 2 -
.../charts/node-exporter/templates/_charts.tpl | 59 +-
.../charts/node-exporter/templates/daemonset.yaml | 2 +-
.../charts/node-exporter/templates/psp.yaml | 2 +-
.../node-exporter/templates/serviceaccount.yaml | 4 +-
.../prometheus/charts/node-exporter/values.yaml | 339 ++++-------
.../prometheus/charts/pushgateway/.helmignore | 3 +-
.../charts/pushgateway/templates/_charts.tpl | 84 ++-
.../charts/pushgateway/templates/deployment.yaml | 10 +-
.../charts/pushgateway/templates/ingress.yaml | 18 +-
.../pushgateway/templates/networkpolicy.yaml | 12 +-
.../charts/pushgateway/templates/pdb.yaml | 2 +-
.../templates/{pushgateway-pvc.yaml => pvc.yaml} | 16 +-
.../charts/pushgateway/templates/service.yaml | 28 +-
.../pushgateway/templates/serviceaccount.yaml | 2 +-
.../charts/pushgateway/templates/statefulset.yaml | 22 +-
.../prometheus/charts/pushgateway/values.yaml | 515 ++++++++--------
.../charts/prometheus/templates/_charts.tpl | 251 +++++++-
.../charts/prometheus/templates/clusterrole.yaml | 2 +-
.../prometheus/templates/clusterrolebinding.yaml | 2 +-
.../templates/{cm.yaml => configmap.yaml} | 19 +-
.../templates/{deploy.yaml => deployment.yaml} | 50 +-
.../charts/prometheus/templates/ingress.yaml | 2 -
.../charts/prometheus/templates/networkpolicy.yaml | 4 +-
.../charts/prometheus/templates/pdb.yaml | 4 +-
.../charts/prometheus/templates/psp.yaml | 12 +-
.../charts/prometheus/templates/pvc.yaml | 3 +-
.../charts/prometheus/templates/rolebinding.yaml | 4 +-
.../charts/prometheus/templates/service.yaml | 2 +-
.../prometheus/templates/serviceaccount.yaml | 4 +-
.../templates/{sts.yaml => statefulset.yaml} | 66 +-
.../charts/prometheus/templates/svc-headless.yaml | 4 +-
.../templates/verticalpodautoscaler.yaml | 8 +-
.../admin-stack/charts/prometheus/values.yaml | 662 +++++----------------
.../zookeeper/templates/_charts.tpl} | 0
.../templates/apps/_kube-state-metrics.tpl | 10 -
.../admin-stack/templates/apps/_node-exporter.tpl | 43 --
.../admin-stack/templates/apps/_prometheus.tpl | 122 ----
.../admin-stack/templates/apps/_pushgateway.tpl | 39 --
84 files changed, 2192 insertions(+), 2612 deletions(-)
diff --git a/deploy/charts/admin-stack/templates/apps/_admin.tpl b/deploy/charts/admin-stack/charts/dubbo-admin/templates/_charts.tpl
similarity index 100%
rename from deploy/charts/admin-stack/templates/apps/_admin.tpl
rename to deploy/charts/admin-stack/charts/dubbo-admin/templates/_charts.tpl
diff --git a/deploy/charts/admin-stack/templates/apps/_grafana.tpl b/deploy/charts/admin-stack/charts/grafana/templates/_charts.tpl
similarity index 100%
rename from deploy/charts/admin-stack/templates/apps/_grafana.tpl
rename to deploy/charts/admin-stack/charts/grafana/templates/_charts.tpl
diff --git a/deploy/charts/admin-stack/templates/apps/_nacos.tpl b/deploy/charts/admin-stack/charts/nacos/templates/_charts.tpl
similarity index 100%
rename from deploy/charts/admin-stack/templates/apps/_nacos.tpl
rename to deploy/charts/admin-stack/charts/nacos/templates/_charts.tpl
diff --git a/deploy/charts/admin-stack/charts/prometheus/.helmignore b/deploy/charts/admin-stack/charts/prometheus/.helmignore
index 8cade131..825c0077 100644
--- a/deploy/charts/admin-stack/charts/prometheus/.helmignore
+++ b/deploy/charts/admin-stack/charts/prometheus/.helmignore
@@ -16,8 +16,8 @@
*.tmp
*~
# Various IDEs
-.vscode
.project
.idea/
*.tmproj
+
OWNERS
diff --git a/deploy/charts/admin-stack/charts/prometheus/Chart.yaml b/deploy/charts/admin-stack/charts/prometheus/Chart.yaml
index 3da44652..9ab1a52b 100644
--- a/deploy/charts/admin-stack/charts/prometheus/Chart.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/Chart.yaml
@@ -25,4 +25,4 @@ maintainers:
sources:
- https://github.com/prometheus/prometheus
type: application
-version: 19.6.1
+version: 19.6.1
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/.helmignore b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/.helmignore
index 8cade131..7653e97e 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/.helmignore
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/.helmignore
@@ -14,10 +14,12 @@
*.swp
*.bak
*.tmp
+*.orig
*~
# Various IDEs
-.vscode
.project
.idea/
*.tmproj
-OWNERS
+.vscode/
+
+unittests/
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/Chart.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/Chart.yaml
index c84a5282..4df4a62b 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/Chart.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/Chart.yaml
@@ -27,4 +27,4 @@ name: alertmanager
sources:
- https://github.com/prometheus/alertmanager
type: application
-version: 0.24.1
+version: 0.24.1
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/_charts.tpl b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/_charts.tpl
index 84a4bc42..18e090d1 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/_charts.tpl
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/_charts.tpl
@@ -1,51 +1,94 @@
-{{- define "prometheus.alertmanager.fullname" -}}
-{{- if .Values.alertmanager.fullnameOverride -}}
-{{- .Values.alertmanager.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- printf "%s-%s" .Release.Name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s-%s" .Release.Name $name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "alertmanager.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
-{{- define "prometheus.alertmanager.matchLabels" -}}
-component: {{ .Values.alertmanager.name | quote }}
-{{ include "prometheus.common.matchLabels" . }}
-{{- end -}}
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "alertmanager.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
{{/*
-Create the name of the service account to use for the alertmanager component
+Create chart name and version as used by the chart label.
*/}}
-{{- define "prometheus.serviceAccountName.alertmanager" -}}
-{{- if .Values.serviceAccounts.alertmanager.create -}}
- {{ default (include "prometheus.alertmanager.fullname" .) .Values.serviceAccounts.alertmanager.name }}
-{{- else -}}
- {{ default "default" .Values.serviceAccounts.alertmanager.name }}
-{{- end -}}
-{{- end -}}
+{{- define "alertmanager.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
-{{- define "prometheus.alertmanager.labels" -}}
-{{ include "prometheus.alertmanager.matchLabels" . }}
-{{ include "prometheus.common.metaLabels" . }}
-{{- end -}}
+{{/*
+Common labels
+*/}}
+{{- define "alertmanager.labels" -}}
+helm.sh/chart: {{ include "alertmanager.chart" . }}
+{{ include "alertmanager.selectorLabels" . }}
+{{- with .Chart.AppVersion }}
+app.kubernetes.io/version: {{ . | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
{{/*
-Return the appropriate apiVersion for deployment.
+Selector labels
*/}}
-{{- define "prometheus.deployment.apiVersion" -}}
-{{- print "apps/v1" -}}
-{{- end -}}
+{{- define "alertmanager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "alertmanager.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "alertmanager.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "alertmanager.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
+
+{{/*
+Define Ingress apiVersion
+*/}}
+{{- define "alertmanager.ingress.apiVersion" -}}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
+{{- printf "networking.k8s.io/v1" }}
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
+{{- printf "networking.k8s.io/v1beta1" }}
+{{- else }}
+{{- printf "extensions/v1beta1" }}
+{{- end }}
+{{- end }}
+
+{{/*
+Define Pdb apiVersion
+*/}}
+{{- define "alertmanager.pdb.apiVersion" -}}
+{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }}
+{{- printf "policy/v1" }}
+{{- else }}
+{{- printf "policy/v1beta1" }}
+{{- end }}
+{{- end }}
{{/*
-Return the appropriate apiVersion for rbac.
+Return the appropriate apiVersion for podsecuritypolicy.
*/}}
-{{- define "rbac.apiVersion" -}}
-{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" }}
-{{- print "rbac.authorization.k8s.io/v1" -}}
-{{- else -}}
-{{- print "rbac.authorization.k8s.io/v1beta1" -}}
+{{- define "alertmanager.psp.apiVersion" -}}
+{{- print "policy/v1beta1" -}}
{{- end -}}
-{{- end -}}
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrole.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrole.yaml
index 1bcfb982..752061bb 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrole.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrole.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.enabled .Values.rbac.create .Values.useClusterRole (not .Values.useExistingRole) -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,13 +14,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.rbac.create .Values.alertmanager.useClusterRole (not .Values.alertmanager.useExistingRole) -}}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: ClusterRole
metadata:
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ name: {{ template "alertmanager.fullname" . }}
rules:
{{- if .Values.podSecurityPolicy.enabled }}
- apiGroups:
@@ -29,7 +29,7 @@ rules:
verbs:
- use
resourceNames:
- - {{ template "prometheus.alertmanager.fullname" . }}
+ - {{ template "alertmanager.fullname" . }}
{{- else }}
[]
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrolebinding.yaml
index ed58f49d..d7c30bf4 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/clusterrolebinding.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.enabled .Values.rbac.create .Values.useClusterRole -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,23 +14,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.rbac.create .Values.alertmanager.useClusterRole -}}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: ClusterRoleBinding
metadata:
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ name: {{ template "alertmanager.fullname" . }}
subjects:
- kind: ServiceAccount
- name: {{ template "prometheus.serviceAccountName.alertmanager" . }}
+ name: {{ include "alertmanager.serviceAccountName" . }}
{{ include "prometheus.namespace" . | indent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
-{{- if (not .Values.alertmanager.useExistingRole) }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
+{{- if (not .Values.useExistingRole) }}
+ name: {{ template "alertmanager.fullname" . }}
{{- else }}
- name: {{ .Values.alertmanager.useExistingRole }}
+ name: {{ .Values.useExistingRole }}
{{- end }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/configmap.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/configmap.yaml
index db673c42..806a09f5 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/configmap.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/configmap.yaml
@@ -13,22 +13,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled (and (empty .Values.alertmanager.configMapOverrideName) (empty .Values.alertmanager.configFromSecret)) -}}
+{{- if .Values.config }}
apiVersion: v1
kind: ConfigMap
metadata:
+ name: {{ include "alertmanager.fullname" . }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
data:
-{{- $root := . -}}
-{{- range $key, $value := .Values.alertmanagerFiles }}
- {{- if $key | regexMatch ".*\\.ya?ml$" }}
- {{ $key }}: |
-{{ toYaml $value | default "{}" | indent 4 }}
- {{- else }}
- {{ $key }}: {{ toYaml $value | indent 4 }}
+ alertmanager.yml: |
+ {{- toYaml .Values.config | default "{}" | nindent 4 }}
+ {{- range $key, $value := .Values.templates }}
+ {{ $key }}: |-
+ {{- $value | nindent 4 }}
{{- end }}
-{{- end -}}
-{{- end -}}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/deploy.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/deploy.yaml
deleted file mode 100644
index 34514664..00000000
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/deploy.yaml
+++ /dev/null
@@ -1,219 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{{- if and .Values.alertmanager.enabled (not .Values.alertmanager.statefulSet.enabled) -}}
-apiVersion: {{ template "prometheus.deployment.apiVersion" . }}
-kind: Deployment
-metadata:
-{{- if .Values.alertmanager.deploymentAnnotations }}
- annotations:
- {{ toYaml .Values.alertmanager.deploymentAnnotations | nindent 4 }}
-{{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
-spec:
- selector:
- matchLabels:
- {{- include "prometheus.alertmanager.matchLabels" . | nindent 6 }}
- replicas: {{ .Values.alertmanager.replicaCount }}
- {{- if .Values.alertmanager.strategy }}
- strategy:
-{{ toYaml .Values.alertmanager.strategy | trim | indent 4 }}
- {{ if eq .Values.alertmanager.strategy.type "Recreate" }}rollingUpdate: null{{ end }}
-{{- end }}
- template:
- metadata:
- {{- if .Values.alertmanager.podAnnotations }}
- annotations:
- {{ toYaml .Values.alertmanager.podAnnotations | nindent 8 }}
- {{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 8 }}
- {{- if .Values.alertmanager.podLabels}}
- {{ toYaml .Values.alertmanager.podLabels | nindent 8 }}
- {{- end}}
- spec:
-{{- if .Values.alertmanager.schedulerName }}
- schedulerName: "{{ .Values.alertmanager.schedulerName }}"
-{{- end }}
- serviceAccountName: {{ template "prometheus.serviceAccountName.alertmanager" . }}
- {{- if .Values.alertmanager.extraInitContainers }}
- initContainers:
-{{ toYaml .Values.alertmanager.extraInitContainers | indent 8 }}
- {{- end }}
-{{- if .Values.alertmanager.priorityClassName }}
- priorityClassName: "{{ .Values.alertmanager.priorityClassName }}"
-{{- end }}
- containers:
- - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}
- image: "{{ .Values.alertmanager.image.repository }}:{{ .Values.alertmanager.image.tag }}"
- imagePullPolicy: "{{ .Values.alertmanager.image.pullPolicy }}"
- env:
- {{- range $key, $value := .Values.alertmanager.extraEnv }}
- - name: {{ $key }}
- value: {{ $value }}
- {{- end }}
- - name: POD_IP
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: status.podIP
- args:
- - --config.file=/etc/config/{{ .Values.alertmanager.configFileName }}
- - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }}
- {{- if .Values.alertmanager.service.enableMeshPeer }}
- - --cluster.listen-address=0.0.0.0:6783
- - --cluster.advertise-address=[$(POD_IP)]:6783
- {{- else }}
- - --cluster.listen-address=
- {{- end }}
- {{- range $key, $value := .Values.alertmanager.extraArgs }}
- - --{{ $key }}={{ $value }}
- {{- end }}
- {{- if .Values.alertmanager.baseURL }}
- - --web.external-url={{ .Values.alertmanager.baseURL }}
- {{- end }}
- {{- range .Values.alertmanager.clusterPeers }}
- - --cluster.peer={{ . }}
- {{- end }}
-
- ports:
- - containerPort: 9093
- readinessProbe:
- httpGet:
- path: {{ .Values.alertmanager.prefixURL }}/-/ready
- port: 9093
- {{- if .Values.alertmanager.probeHeaders }}
- httpHeaders:
- {{- range .Values.alertmanager.probeHeaders }}
- - name: {{ .name }}
- value: {{ .value }}
- {{- end }}
- {{- end }}
- initialDelaySeconds: 30
- timeoutSeconds: 30
- resources:
-{{ toYaml .Values.alertmanager.resources | indent 12 }}
- volumeMounts:
- - name: config-volume
- mountPath: /etc/config
- - name: storage-volume
- mountPath: "{{ .Values.alertmanager.persistentVolume.mountPath }}"
- subPath: "{{ .Values.alertmanager.persistentVolume.subPath }}"
- {{- range .Values.alertmanager.extraSecretMounts }}
- - name: {{ .name }}
- mountPath: {{ .mountPath }}
- subPath: {{ .subPath }}
- readOnly: {{ .readOnly }}
- {{- end }}
- {{- range .Values.alertmanager.extraConfigmapMounts }}
- - name: {{ .name }}
- mountPath: {{ .mountPath }}
- subPath: {{ .subPath }}
- readOnly: {{ .readOnly }}
- {{- end }}
-
- {{- if .Values.configmapReload.alertmanager.enabled }}
- - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}-{{ .Values.configmapReload.alertmanager.name }}
- image: "{{ .Values.configmapReload.alertmanager.image.repository }}:{{ .Values.configmapReload.alertmanager.image.tag }}"
- imagePullPolicy: "{{ .Values.configmapReload.alertmanager.image.pullPolicy }}"
- args:
- - --volume-dir=/etc/config
- - --webhook-url=http://127.0.0.1:9093{{ .Values.alertmanager.prefixURL }}/-/reload
- {{- range $key, $value := .Values.configmapReload.alertmanager.extraArgs }}
- - --{{ $key }}={{ $value }}
- {{- end }}
- {{- range .Values.configmapReload.alertmanager.extraVolumeDirs }}
- - --volume-dir={{ . }}
- {{- end }}
- resources:
-{{ toYaml .Values.configmapReload.alertmanager.resources | indent 12 }}
- volumeMounts:
- - name: config-volume
- mountPath: /etc/config
- readOnly: true
- {{- range .Values.configmapReload.alertmanager.extraConfigmapMounts }}
- - name: {{ $.Values.configmapReload.alertmanager.name }}-{{ .name }}
- mountPath: {{ .mountPath }}
- subPath: {{ .subPath }}
- readOnly: {{ .readOnly }}
- {{- end }}
- {{- end }}
- {{- if .Values.imagePullSecrets }}
- imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.nodeSelector }}
- nodeSelector:
-{{ toYaml .Values.alertmanager.nodeSelector | indent 8 }}
- {{- end }}
- {{- with .Values.alertmanager.dnsConfig }}
- dnsConfig:
-{{ toYaml . | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.securityContext }}
- securityContext:
-{{ toYaml .Values.alertmanager.securityContext | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.tolerations }}
- tolerations:
-{{ toYaml .Values.alertmanager.tolerations | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.affinity }}
- affinity:
-{{ toYaml .Values.alertmanager.affinity | indent 8 }}
- {{- 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 }}
- {{- range .Values.alertmanager.extraSecretMounts }}
- - name: {{ .name }}
- secret:
- secretName: {{ .secretName }}
- {{- with .optional }}
- optional: {{ . }}
- {{- end }}
- {{- end }}
- {{- range .Values.alertmanager.extraConfigmapMounts }}
- - name: {{ .name }}
- configMap:
- name: {{ .configMap }}
- {{- end }}
- {{- range .Values.configmapReload.alertmanager.extraConfigmapMounts }}
- - name: {{ $.Values.configmapReload.alertmanager.name }}-{{ .name }}
- configMap:
- name: {{ .configMap }}
- {{- end }}
- - name: storage-volume
- {{- if .Values.alertmanager.persistentVolume.enabled }}
- persistentVolumeClaim:
- claimName: {{ if .Values.alertmanager.persistentVolume.existingClaim }}{{ .Values.alertmanager.persistentVolume.existingClaim }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }}
- {{- else }}
- emptyDir:
- {{- if .Values.alertmanager.emptyDir.sizeLimit }}
- sizeLimit: {{ .Values.alertmanager.emptyDir.sizeLimit }}
- {{- else }}
- {}
- {{- end -}}
- {{- end -}}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/ingress.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/ingress.yaml
index 4ca45048..dd344d17 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/ingress.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/ingress.yaml
@@ -13,60 +13,58 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.alertmanager.ingress.enabled -}}
-{{- $ingressApiIsStable := eq (include "ingress.isStable" .) "true" -}}
-{{- $ingressSupportsIngressClassName := eq (include "ingress.supportsIngressClassName" .) "true" -}}
-{{- $ingressSupportsPathType := eq (include "ingress.supportsPathType" .) "true" -}}
-{{- $releaseName := .Release.Name -}}
-{{- $serviceName := include "prometheus.alertmanager.fullname" . }}
-{{- $servicePort := .Values.alertmanager.service.servicePort -}}
-{{- $ingressPath := .Values.alertmanager.ingress.path -}}
-{{- $ingressPathType := .Values.alertmanager.ingress.pathType -}}
-{{- $extraPaths := .Values.alertmanager.ingress.extraPaths -}}
-apiVersion: {{ template "ingress.apiVersion" . }}
+{{- if .Values.ingress.enabled }}
+{{- $fullName := include "alertmanager.fullname" . }}
+{{- $svcPort := .Values.service.port }}
+{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
+{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
+{{- end }}
+{{- end }}
+apiVersion: {{ include "alertmanager.ingress.apiVersion" . }}
kind: Ingress
metadata:
-{{- if .Values.alertmanager.ingress.annotations }}
- annotations:
-{{ toYaml .Values.alertmanager.ingress.annotations | indent 4 }}
-{{- end }}
+ name: {{ $fullName }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
-{{- range $key, $value := .Values.alertmanager.ingress.extraLabels }}
- {{ $key }}: {{ $value }}
-{{- end }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ {{- with .Values.ingress.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
spec:
- {{- if and $ingressSupportsIngressClassName .Values.alertmanager.ingress.ingressClassName }}
- ingressClassName: {{ .Values.alertmanager.ingress.ingressClassName }}
+ {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+ ingressClassName: {{ .Values.ingress.className }}
+ {{- end }}
+ {{- if .Values.ingress.tls }}
+ tls:
+ {{- range .Values.ingress.tls }}
+ - hosts:
+ {{- range .hosts }}
+ - {{ . | quote }}
+ {{- end }}
+ secretName: {{ .secretName }}
+ {{- end }}
{{- end }}
rules:
- {{- range .Values.alertmanager.ingress.hosts }}
- {{- $url := splitList "/" . }}
- - host: {{ first $url }}
+ {{- range .Values.ingress.hosts }}
+ - host: {{ .host | quote }}
http:
paths:
-{{ if $extraPaths }}
-{{ toYaml $extraPaths | indent 10 }}
-{{- end }}
- - path: {{ $ingressPath }}
- {{- if $ingressSupportsPathType }}
- pathType: {{ $ingressPathType }}
+ {{- range .paths }}
+ - path: {{ .path }}
+ {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
+ pathType: {{ .pathType }}
{{- end }}
backend:
- {{- if $ingressApiIsStable }}
+ {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
- name: {{ $serviceName }}
+ name: {{ $fullName }}
port:
- number: {{ $servicePort }}
+ number: {{ $svcPort }}
{{- else }}
- serviceName: {{ $serviceName }}
- servicePort: {{ $servicePort }}
+ serviceName: {{ $fullName }}
+ servicePort: {{ $svcPort }}
{{- end }}
- {{- end -}}
-{{- if .Values.alertmanager.ingress.tls }}
- tls:
-{{ toYaml .Values.alertmanager.ingress.tls | indent 4 }}
- {{- end -}}
-{{- end -}}
\ No newline at end of file
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/networkpolicy.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/networkpolicy.yaml
index b24a6a36..c28a43ee 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/networkpolicy.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/networkpolicy.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.enabled .Values.networkPolicy.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,14 +14,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.networkPolicy.enabled -}}
apiVersion: {{ template "prometheus.networkPolicy.apiVersion" . }}
kind: NetworkPolicy
metadata:
- name: {{ template "prometheus.alertmanager.fullname" . }}
+ name: {{ template "alertmanager.fullname" . }}
{{ include "prometheus.namespace" . | indent 2 }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
spec:
podSelector:
matchLabels:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pdb.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pdb.yaml
index 2b0ef88e..d2df1290 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pdb.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pdb.yaml
@@ -13,17 +13,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.alertmanager.podDisruptionBudget.enabled }}
-apiVersion: policy/v1beta1
+{{- if .Values.podDisruptionBudget }}
+apiVersion: {{ include "alertmanager.pdb.apiVersion" . }}
kind: PodDisruptionBudget
metadata:
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
+ name: {{ include "alertmanager.fullname" . }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
spec:
- maxUnavailable: {{ .Values.alertmanager.podDisruptionBudget.maxUnavailable }}
selector:
matchLabels:
- {{- include "prometheus.alertmanager.labels" . | nindent 6 }}
+ {{- include "alertmanager.selectorLabels" . | nindent 6 }}
+ {{- toYaml .Values.podDisruptionBudget | nindent 2 }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/psp.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/psp.yaml
index bb0e4685..496acab5 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/psp.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/psp.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.enabled .Values.rbac.create .Values.podSecurityPolicy.enabled }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,16 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.rbac.create .Values.podSecurityPolicy.enabled }}
-apiVersion: {{ template "prometheus.podSecurityPolicy.apiVersion" . }}
+apiVersion: {{ template "alertmanager.psp.apiVersion" . }}
kind: PodSecurityPolicy
metadata:
name: {{ template "prometheus.alertmanager.fullname" . }}
labels:
{{- include "prometheus.alertmanager.labels" . | nindent 4 }}
annotations:
-{{- if .Values.alertmanager.podSecurityPolicy.annotations }}
-{{ toYaml .Values.alertmanager.podSecurityPolicy.annotations | indent 4 }}
+{{- if .Values.podSecurityPolicy.annotations }}
+{{ toYaml .Values.podSecurityPolicy.annotations | indent 4 }}
{{- end }}
spec:
privileged: false
@@ -37,7 +37,7 @@ spec:
allowedHostPaths:
- pathPrefix: /etc
readOnly: true
- - pathPrefix: {{ .Values.alertmanager.persistentVolume.mountPath }}
+ - pathPrefix: {{ .Values.persistentVolume.mountPath }}
hostNetwork: false
hostPID: false
hostIPC: false
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pvc.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pvc.yaml
deleted file mode 100644
index ac2a8783..00000000
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/pvc.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{{- if not .Values.alertmanager.statefulSet.enabled -}}
-{{- if and .Values.alertmanager.enabled .Values.alertmanager.persistentVolume.enabled -}}
-{{- if not .Values.alertmanager.persistentVolume.existingClaim -}}
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- {{- if .Values.alertmanager.persistentVolume.annotations }}
- annotations:
-{{ toYaml .Values.alertmanager.persistentVolume.annotations | indent 4 }}
- {{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
-spec:
- accessModes:
-{{ toYaml .Values.alertmanager.persistentVolume.accessModes | indent 4 }}
-{{- if .Values.alertmanager.persistentVolume.storageClass }}
-{{- if (eq "-" .Values.alertmanager.persistentVolume.storageClass) }}
- storageClassName: ""
-{{- else }}
- storageClassName: "{{ .Values.alertmanager.persistentVolume.storageClass }}"
-{{- end }}
-{{- end }}
-{{- if .Values.alertmanager.persistentVolume.volumeBindingMode }}
- volumeBindingMode: "{{ .Values.alertmanager.persistentVolume.volumeBindingMode }}"
-{{- end }}
- resources:
- requests:
- storage: "{{ .Values.alertmanager.persistentVolume.size }}"
-{{- if .Values.alertmanager.persistentVolume.selector }}
- selector:
- {{- toYaml .Values.alertmanager.persistentVolume.selector | nindent 4 }}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/role.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/role.yaml
index f48a1797..1f15c0fb 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/role.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/role.yaml
@@ -13,14 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.rbac.create (eq .Values.alertmanager.useClusterRole false) (not .Values.alertmanager.useExistingRole) -}}
-{{- range $.Values.alertmanager.namespaces }}
+{{- if and .Values.enabled .Values.rbac.create (eq .Values.useClusterRole false) (not .Values.useExistingRole) -}}
+{{- range $.Values.namespaces }}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: Role
metadata:
labels:
- {{- include "prometheus.alertmanager.labels" $ | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" $ }}
+ {{- include "alertmanager.labels" $ | nindent 4 }}
+ name: {{ template "alertmanager.fullname" $ }}
namespace: {{ . }}
rules:
{{- if $.Values.podSecurityPolicy.enabled }}
@@ -31,7 +31,7 @@ rules:
verbs:
- use
resourceNames:
- - {{ template "prometheus.alertmanager.fullname" $ }}
+ - {{ template "alertmanager.fullname" $ }}
{{- else }}
[]
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/rolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/rolebinding.yaml
index a1a92fc6..64e50d06 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/rolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/rolebinding.yaml
@@ -13,26 +13,26 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.rbac.create (eq .Values.alertmanager.useClusterRole false) -}}
-{{ range $.Values.alertmanager.namespaces }}
+{{- if and .Values.enabled .Values.rbac.create (eq .Values.useClusterRole false) -}}
+{{ range $.Values.namespaces }}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: RoleBinding
metadata:
labels:
- {{- include "prometheus.alertmanager.labels" $ | nindent 4 }}
- name: {{ template "prometheus.alertmanager.fullname" $ }}
+ {{- include "alertmanager.labels" $ | nindent 4 }}
+ name: {{ template "alertmanager.fullname" $ }}
namespace: {{ . }}
subjects:
- kind: ServiceAccount
- name: {{ template "prometheus.serviceAccountName.alertmanager" $ }}
+ name: {{ include "alertmanager.serviceAccountName" . }}
{{ include "prometheus.namespace" $ | indent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
-{{- if (not $.Values.alertmanager.useExistingRole) }}
- name: {{ template "prometheus.alertmanager.fullname" $ }}
+{{- if (not $.Values.useExistingRole) }}
+ name: {{ template "alertmanager.fullname" $ }}
{{- else }}
- name: {{ $.Values.alertmanager.useExistingRole }}
+ name: {{ $.Values.useExistingRole }}
{{- end }}
{{- end }}
{{ end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/service.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/service.yaml
index 0003c715..4da5ed66 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/service.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/service.yaml
@@ -13,56 +13,60 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.alertmanager.enabled -}}
apiVersion: v1
kind: Service
metadata:
-{{- if .Values.alertmanager.service.annotations }}
- annotations:
-{{ toYaml .Values.alertmanager.service.annotations | indent 4 }}
-{{- end }}
+ name: {{ include "alertmanager.fullname" . }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
-{{- if .Values.alertmanager.service.labels }}
-{{ toYaml .Values.alertmanager.service.labels | indent 4 }}
-{{- end }}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ {{- with .Values.service.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
spec:
-{{- if .Values.alertmanager.service.clusterIP }}
- clusterIP: {{ .Values.alertmanager.service.clusterIP }}
-{{- end }}
-{{- if .Values.alertmanager.service.externalIPs }}
- externalIPs:
-{{ toYaml .Values.alertmanager.service.externalIPs | indent 4 }}
-{{- end }}
-{{- if .Values.alertmanager.service.loadBalancerIP }}
- loadBalancerIP: {{ .Values.alertmanager.service.loadBalancerIP }}
-{{- end }}
-{{- if .Values.alertmanager.service.loadBalancerSourceRanges }}
+ type: {{ .Values.service.type }}
+ {{- with .Values.service.loadBalancerIP }}
+ loadBalancerIP: {{ . }}
+ {{- end }}
+ {{- with .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
- {{- range $cidr := .Values.alertmanager.service.loadBalancerSourceRanges }}
+ {{- range $cidr := . }}
- {{ $cidr }}
{{- end }}
-{{- end }}
+ {{- end }}
ports:
- - name: http
- port: {{ .Values.alertmanager.service.servicePort }}
+ - port: {{ .Values.service.port }}
+ targetPort: http
protocol: TCP
- targetPort: 9093
- {{- if .Values.alertmanager.service.nodePort }}
- nodePort: {{ .Values.alertmanager.service.nodePort }}
- {{- end }}
-{{- if .Values.alertmanager.service.enableMeshPeer }}
- - name: meshpeer
- port: 6783
+ name: http
+ {{- if (and (eq .Values.service.type "NodePort") .Values.service.nodePort) }}
+ nodePort: {{ .Values.service.nodePort }}
+ {{- end }}
+ selector:
+ {{- include "alertmanager.selectorLabels" . | nindent 4 }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "alertmanager.fullname" . }}-headless
+ labels:
+ {{- include "alertmanager.labels" . | nindent 4 }}
+spec:
+ clusterIP: None
+ ports:
+ - port: {{ .Values.service.port }}
+ targetPort: http
+ protocol: TCP
+ name: http
+ {{- if or (gt (int .Values.replicaCount) 1) (.Values.additionalPeers) }}
+ - port: {{ .Values.service.clusterPort }}
+ targetPort: {{ .Values.service.clusterPort }}
protocol: TCP
- targetPort: 6783
-{{- end }}
+ name: cluster-tcp
+ - port: {{ .Values.service.clusterPort }}
+ targetPort: {{ .Values.service.clusterPort }}
+ protocol: UDP
+ name: cluster-udp
+ {{- end }}
selector:
- {{- include "prometheus.alertmanager.matchLabels" . | nindent 4 }}
-{{- if .Values.alertmanager.service.sessionAffinity }}
- sessionAffinity: {{ .Values.alertmanager.service.sessionAffinity }}
-{{- end }}
- type: "{{ .Values.alertmanager.service.type }}"
-{{- end }}
+ {{- include "alertmanager.selectorLabels" . | nindent 4 }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/serviceaccount.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/serviceaccount.yaml
index c00ee9cd..a2d17947 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/serviceaccount.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/serviceaccount.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.serviceAccount.create }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,14 +14,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.alertmanager.enabled .Values.serviceAccounts.alertmanager.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
+ name: {{ include "alertmanager.serviceAccountName" . }}
labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- name: {{ template "prometheus.serviceAccountName.alertmanager" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ {{- with .Values.serviceAccount.annotations }}
annotations:
-{{ toYaml .Values.serviceAccounts.alertmanager.annotations | indent 4 }}
-{{- end -}}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/statefulset.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/statefulset.yaml
new file mode 100644
index 00000000..5c0bb506
--- /dev/null
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/statefulset.yaml
@@ -0,0 +1,214 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{- $svcClusterPort := .Values.service.clusterPort }}
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ name: {{ include "alertmanager.fullname" . }}
+ labels:
+ {{- include "alertmanager.labels" . | nindent 4 }}
+ {{- with .Values.statefulSet.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ selector:
+ matchLabels:
+ {{- include "alertmanager.selectorLabels" . | nindent 6 }}
+ serviceName: {{ include "alertmanager.fullname" . }}-headless
+ template:
+ metadata:
+ labels:
+ {{- include "alertmanager.selectorLabels" . | nindent 8 }}
+ {{- with .Values.podLabels }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ annotations:
+ {{- if not .Values.configmapReload.enabled }}
+ checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with .Values.podAnnotations }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "alertmanager.serviceAccountName" . }}
+ {{- with .Values.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- if or .Values.podAntiAffinity .Values.affinity }}
+ affinity:
+ {{- end }}
+ {{- with .Values.affinity }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- if eq .Values.podAntiAffinity "hard" }}
+ podAntiAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ - topologyKey: {{ .Values.podAntiAffinityTopologyKey }}
+ labelSelector:
+ matchExpressions:
+ - {key: app.kubernetes.io/name, operator: In, values: [{{ include "alertmanager.name" . }}]}
+ {{- else if eq .Values.podAntiAffinity "soft" }}
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ topologyKey: {{ .Values.podAntiAffinityTopologyKey }}
+ labelSelector:
+ matchExpressions:
+ - {key: app.kubernetes.io/name, operator: In, values: [{{ include "alertmanager.name" . }}]}
+ {{- end }}
+ {{- with .Values.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ securityContext:
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
+ containers:
+ {{- if and (.Values.configmapReload.enabled) (.Values.config) }}
+ - name: {{ .Chart.Name }}-{{ .Values.configmapReload.name }}
+ image: "{{ .Values.configmapReload.image.repository }}:{{ .Values.configmapReload.image.tag }}"
+ imagePullPolicy: "{{ .Values.configmapReload.image.pullPolicy }}"
+ args:
+ - --volume-dir=/etc/alertmanager
+ - --webhook-url=http://127.0.0.1:{{ .Values.service.port }}/-/reload
+ resources:
+ {{- toYaml .Values.configmapReload.resources | nindent 12 }}
+ {{- with .Values.configmapReload.containerPort }}
+ ports:
+ - containerPort: {{ . }}
+ {{- end }}
+ volumeMounts:
+ - name: config
+ mountPath: /etc/alertmanager
+ {{- end }}
+ - name: {{ .Chart.Name }}
+ securityContext:
+ {{- toYaml .Values.securityContext | nindent 12 }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ {{- if .Values.extraEnv }}
+ {{- toYaml .Values.extraEnv | nindent 12 }}
+ {{- end }}
+ {{- with .Values.command }}
+ command:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ args:
+ - --storage.path=/alertmanager
+ - --config.file=/etc/alertmanager/alertmanager.yml
+ {{- if or (gt (int .Values.replicaCount) 1) (.Values.additionalPeers) }}
+ - --cluster.advertise-address=[$(POD_IP)]:{{ $svcClusterPort }}
+ - --cluster.listen-address=0.0.0.0:{{ $svcClusterPort }}
+ {{- end }}
+ {{- if gt (int .Values.replicaCount) 1}}
+ {{- $fullName := include "alertmanager.fullname" . }}
+ {{- range $i := until (int .Values.replicaCount) }}
+ - --cluster.peer={{ $fullName }}-{{ $i }}.{{ $fullName }}-headless:{{ $svcClusterPort }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.additionalPeers }}
+ {{- range $item := .Values.additionalPeers }}
+ - --cluster.peer={{ $item }}
+ {{- end }}
+ {{- end }}
+ {{- range $key, $value := .Values.extraArgs }}
+ - --{{ $key }}={{ $value }}
+ {{- end }}
+ ports:
+ - name: http
+ containerPort: 9093
+ protocol: TCP
+ livenessProbe:
+ {{- toYaml .Values.livenessProbe | nindent 12 }}
+ readinessProbe:
+ {{- toYaml .Values.readinessProbe | nindent 12 }}
+ resources:
+ {{- toYaml .Values.resources | nindent 12 }}
+ volumeMounts:
+ {{- if .Values.config }}
+ - name: config
+ mountPath: /etc/alertmanager
+ {{- end }}
+ {{- range .Values.extraSecretMounts }}
+ - name: {{ .name }}
+ mountPath: {{ .mountPath }}
+ subPath: {{ .subPath }}
+ readOnly: {{ .readOnly }}
+ {{- end }}
+ - name: storage
+ mountPath: /alertmanager
+ {{- if .Values.extraVolumeMounts }}
+ {{- toYaml .Values.extraVolumeMounts | nindent 12 }}
+ {{- end }}
+ volumes:
+ {{- if .Values.config }}
+ - name: config
+ configMap:
+ name: {{ include "alertmanager.fullname" . }}
+ {{- end }}
+ {{- range .Values.extraSecretMounts }}
+ - name: {{ .name }}
+ secret:
+ secretName: {{ .secretName }}
+ {{- with .optional }}
+ optional: {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.extraVolumes }}
+ {{- toYaml .Values.extraVolumes | nindent 8 }}
+ {{- end }}
+ {{- if .Values.persistence.enabled }}
+ volumeClaimTemplates:
+ - metadata:
+ name: storage
+ spec:
+ accessModes:
+ {{- toYaml .Values.persistence.accessModes | nindent 10 }}
+ resources:
+ requests:
+ storage: {{ .Values.persistence.size }}
+ {{- if .Values.persistence.storageClass }}
+ {{- if (eq "-" .Values.persistence.storageClass) }}
+ storageClassName: ""
+ {{- else }}
+ storageClassName: {{ .Values.persistence.storageClass }}
+ {{- end }}
+ {{- end }}
+ {{- else }}
+ - name: storage
+ emptyDir: {}
+ {{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/sts.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/sts.yaml
deleted file mode 100644
index 7be73658..00000000
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/sts.yaml
+++ /dev/null
@@ -1,196 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{{- if and .Values.alertmanager.enabled .Values.alertmanager.statefulSet.enabled -}}
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-{{- if .Values.alertmanager.statefulSet.annotations }}
- annotations:
- {{ toYaml .Values.alertmanager.statefulSet.annotations | nindent 4 }}
-{{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
- {{- if .Values.alertmanager.statefulSet.labels}}
- {{ toYaml .Values.alertmanager.statefulSet.labels | nindent 4 }}
- {{- end}}
- name: {{ template "prometheus.alertmanager.fullname" . }}
-{{ include "prometheus.namespace" . | indent 2 }}
-spec:
- serviceName: {{ template "prometheus.alertmanager.fullname" . }}-headless
- selector:
- matchLabels:
- {{- include "prometheus.alertmanager.matchLabels" . | nindent 6 }}
- replicas: {{ .Values.alertmanager.replicaCount }}
- podManagementPolicy: {{ .Values.alertmanager.statefulSet.podManagementPolicy }}
- template:
- metadata:
- {{- if .Values.alertmanager.podAnnotations }}
- annotations:
- {{ toYaml .Values.alertmanager.podAnnotations | nindent 8 }}
- {{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 8 }}
- {{- if .Values.alertmanager.podLabels}}
- {{ toYaml .Values.alertmanager.podLabels | nindent 8 }}
- {{- end}}
- spec:
-{{- if .Values.alertmanager.affinity }}
- affinity:
-{{ toYaml .Values.alertmanager.affinity | indent 8 }}
-{{- end }}
-{{- if .Values.alertmanager.schedulerName }}
- schedulerName: "{{ .Values.alertmanager.schedulerName }}"
-{{- end }}
- serviceAccountName: {{ template "prometheus.serviceAccountName.alertmanager" . }}
-{{- if .Values.alertmanager.priorityClassName }}
- priorityClassName: "{{ .Values.alertmanager.priorityClassName }}"
-{{- end }}
- containers:
- - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}
- image: "{{ .Values.alertmanager.image.repository }}:{{ .Values.alertmanager.image.tag }}"
- imagePullPolicy: "{{ .Values.alertmanager.image.pullPolicy }}"
- env:
- {{- range $key, $value := .Values.alertmanager.extraEnv }}
- - name: {{ $key }}
- value: {{ $value }}
- {{- end }}
- - name: POD_IP
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: status.podIP
- args:
- - --config.file=/etc/config/alertmanager.yml
- - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }}
- {{- if .Values.alertmanager.statefulSet.headless.enableMeshPeer }}
- - --cluster.advertise-address=[$(POD_IP)]:6783
- - --cluster.listen-address=0.0.0.0:6783
- {{- range $n := until (.Values.alertmanager.replicaCount | int) }}
- - --cluster.peer={{ template "prometheus.alertmanager.fullname" $ }}-{{ $n }}.{{ template "prometheus.alertmanager.fullname" $ }}-headless:6783
- {{- end }}
- {{- else }}
- - --cluster.listen-address=
- {{- end }}
- {{- range $key, $value := .Values.alertmanager.extraArgs }}
- - --{{ $key }}={{ $value }}
- {{- end }}
- {{- if .Values.alertmanager.baseURL }}
- - --web.external-url={{ .Values.alertmanager.baseURL }}
- {{- end }}
-
- ports:
- - containerPort: 9093
- {{- if .Values.alertmanager.statefulSet.headless.enableMeshPeer }}
- - containerPort: 6783
- {{- end }}
- readinessProbe:
- httpGet:
- path: {{ .Values.alertmanager.prefixURL }}/#/status
- port: 9093
- initialDelaySeconds: 30
- timeoutSeconds: 30
- resources:
-{{ toYaml .Values.alertmanager.resources | indent 12 }}
- volumeMounts:
- - name: config-volume
- mountPath: /etc/config
- - name: storage-volume
- mountPath: "{{ .Values.alertmanager.persistentVolume.mountPath }}"
- subPath: "{{ .Values.alertmanager.persistentVolume.subPath }}"
- {{- range .Values.alertmanager.extraSecretMounts }}
- - name: {{ .name }}
- mountPath: {{ .mountPath }}
- subPath: {{ .subPath }}
- readOnly: {{ .readOnly }}
- {{- end }}
- {{- if .Values.configmapReload.alertmanager.enabled }}
- - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}-{{ .Values.configmapReload.alertmanager.name }}
- image: "{{ .Values.configmapReload.alertmanager.image.repository }}:{{ .Values.configmapReload.alertmanager.image.tag }}"
- imagePullPolicy: "{{ .Values.configmapReload.alertmanager.image.pullPolicy }}"
- args:
- - --volume-dir=/etc/config
- - --webhook-url=http://localhost:9093{{ .Values.alertmanager.prefixURL }}/-/reload
- resources:
-{{ toYaml .Values.configmapReload.alertmanager.resources | indent 12 }}
- volumeMounts:
- - name: config-volume
- mountPath: /etc/config
- readOnly: true
- {{- end }}
- {{- if .Values.imagePullSecrets }}
- imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.nodeSelector }}
- nodeSelector:
-{{ toYaml .Values.alertmanager.nodeSelector | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.securityContext }}
- securityContext:
-{{ toYaml .Values.alertmanager.securityContext | indent 8 }}
- {{- end }}
- {{- if .Values.alertmanager.tolerations }}
- tolerations:
-{{ toYaml .Values.alertmanager.tolerations | indent 8 }}
- {{- 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 }}
- {{- range .Values.alertmanager.extraSecretMounts }}
- - name: {{ .name }}
- secret:
- secretName: {{ .secretName }}
- {{- with .optional }}
- optional: {{ . }}
- {{- end }}
- {{- end }}
-{{- if .Values.alertmanager.persistentVolume.enabled }}
- volumeClaimTemplates:
- - metadata:
- name: storage-volume
- {{- if .Values.alertmanager.persistentVolume.annotations }}
- annotations:
-{{ toYaml .Values.alertmanager.persistentVolume.annotations | indent 10 }}
- {{- end }}
- spec:
- accessModes:
-{{ toYaml .Values.alertmanager.persistentVolume.accessModes | indent 10 }}
- resources:
- requests:
- storage: "{{ .Values.alertmanager.persistentVolume.size }}"
- {{- if .Values.server.persistentVolume.storageClass }}
- {{- if (eq "-" .Values.server.persistentVolume.storageClass) }}
- storageClassName: ""
- {{- else }}
- storageClassName: "{{ .Values.alertmanager.persistentVolume.storageClass }}"
- {{- end }}
- {{- end }}
-{{- else }}
- - name: storage-volume
- emptyDir:
- {{- if .Values.alertmanager.emptyDir.sizeLimit }}
- sizeLimit: {{ .Values.alertmanager.emptyDir.sizeLimit }}
- {{- else }}
- {}
- {{- end -}}
-{{- end }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/svc-headless.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/svc-headless.yaml
deleted file mode 100644
index cd81d5fa..00000000
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/templates/svc-headless.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{{- if and .Values.alertmanager.enabled .Values.alertmanager.statefulSet.enabled -}}
-apiVersion: v1
-kind: Service
-metadata:
-{{- if .Values.alertmanager.statefulSet.headless.annotations }}
- annotations:
-{{ toYaml .Values.alertmanager.statefulSet.headless.annotations | indent 4 }}
-{{- end }}
- labels:
- {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
-{{- if .Values.alertmanager.statefulSet.headless.labels }}
-{{ toYaml .Values.alertmanager.statefulSet.headless.labels | indent 4 }}
-{{- end }}
- name: {{ template "prometheus.alertmanager.fullname" . }}-headless
-{{ include "prometheus.namespace" . | indent 2 }}
-spec:
- clusterIP: None
- ports:
- - name: http
- port: {{ .Values.alertmanager.statefulSet.headless.servicePort }}
- protocol: TCP
- targetPort: 9093
-{{- if .Values.alertmanager.statefulSet.headless.enableMeshPeer }}
- - name: meshpeer
- port: 6783
- protocol: TCP
- targetPort: 6783
-{{- end }}
- selector:
- {{- include "prometheus.alertmanager.matchLabels" . | nindent 4 }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/values.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/values.yaml
index 26e1204c..8db07f25 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/values.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/alertmanager/values.yaml
@@ -13,445 +13,247 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-rbac:
- create: true
+# Default values for alertmanager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+ repository: quay.io/prometheus/alertmanager
+ pullPolicy: IfNotPresent
+ # Overrides the image tag whose default is the chart appVersion.
+ tag: ""
+
+extraArgs: {}
+
+## Additional Alertmanager Secret mounts
+# Defines additional mounts with secrets. Secrets must be manually created in the namespace.
+extraSecretMounts: []
+ # - name: secret-files
+ # mountPath: /etc/secrets
+ # subPath: ""
+ # secretName: alertmanager-secret-files
+ # readOnly: true
-podSecurityPolicy:
- enabled: false
+imagePullSecrets: []
+name: alertmanager
+nameOverride: ""
+fullnameOverride: ""
-imagePullSecrets:
-# - name: "image-pull-secret"
+rbac:
+ create: true
+
+## Use a ClusterRole (and ClusterRoleBinding)
+## - If set to false - we define a Role and RoleBinding in the defined namespaces ONLY
+## This makes alertmanager work - for users who do not have ClusterAdmin privs, but wants alertmanager to operate on their own namespaces, instead of clusterwide.
+useClusterRole: true
+
+## Set to a rolename to use existing role - skipping role creating - but still doing serviceaccount and rolebinding to the rolename set here.
+useExistingRole: false
+
+serviceAccount:
+ # Specifies whether a service account should be created
+ create: true
+ # Annotations to add to the service account
+ annotations: {}
+ # The name of the service account to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name:
+
+podSecurityContext:
+ fsGroup: 65534
+dnsConfig: {}
+ # nameservers:
+ # - 1.2.3.4
+ # searches:
+ # - ns1.svc.cluster-domain.example
+ # - my.dns.search.suffix
+ # options:
+ # - name: ndots
+ # value: "2"
+ # - name: edns0
+securityContext:
+ # capabilities:
+ # drop:
+ # - ALL
+ # readOnlyRootFilesystem: true
+ runAsUser: 65534
+ runAsNonRoot: true
+ runAsGroup: 65534
+
+additionalPeers: []
+
+livenessProbe:
+ httpGet:
+ path: /
+ port: http
-networkPolicy:
+readinessProbe:
+ httpGet:
+ path: /
+ port: http
+
+service:
+ annotations: {}
+ type: ClusterIP
+ port: 9093
+ clusterPort: 9094
+ loadBalancerIP: "" # Assign ext IP when Service type is LoadBalancer
+ loadBalancerSourceRanges: [] # Only allow access to loadBalancerIP from these IPs
+ # if you want to force a specific nodePort. Must be use with service.type=NodePort
+ # nodePort:
+
+ingress:
enabled: false
+ className: ""
+ annotations: {}
+ # kubernetes.io/ingress.class: nginx
+ # kubernetes.io/tls-acme: "true"
+ hosts:
+ - host: alertmanager.domain.com
+ paths:
+ - path: /
+ pathType: ImplementationSpecific
+ tls: []
+ # - secretName: chart-example-tls
+ # hosts:
+ # - alertmanager.domain.com
+
+resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 10m
+ # memory: 32Mi
-configmapReload:
- prometheus:
- ## If false, the configmap-reload container will not be deployed
- ##
- enabled: true
-
- ## configmap-reload container name
- ##
- name: configmap-reload
-
- ## configmap-reload container image
- ##
- image:
- repository: jimmidyson/configmap-reload
- tag: v0.8.0
- pullPolicy: IfNotPresent
-
- ## Additional configmap-reload container arguments
- ##
- extraArgs: {}
- ## Additional configmap-reload volume directories
- ##
- extraVolumeDirs: []
-
-
- ## Additional configmap-reload mounts
- ##
- extraConfigmapMounts: []
- # - name: prometheus-alerts
- # mountPath: /etc/alerts.d
- # subPath: ""
- # configMap: prometheus-alerts
- # readOnly: true
-
-
- ## configmap-reload resource requests and limits
- ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- alertmanager:
- ## If false, the configmap-reload container will not be deployed
- ##
- enabled: true
-
- ## configmap-reload container name
- ##
- name: configmap-reload
-
- ## configmap-reload container image
- ##
- image:
- repository: jimmidyson/configmap-reload
- tag: v0.5.0
- pullPolicy: IfNotPresent
-
- ## Additional configmap-reload container arguments
- ##
- extraArgs: {}
- ## Additional configmap-reload volume directories
- ##
- extraVolumeDirs: []
-
-
- ## Additional configmap-reload mounts
- ##
- extraConfigmapMounts: []
- # - name: prometheus-alerts
- # mountPath: /etc/alerts.d
- # subPath: ""
- # configMap: prometheus-alerts
- # readOnly: true
-
-
- ## configmap-reload resource requests and limits
- ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
-
-## Define serviceAccount names for components. Defaults to component's fully qualified name.
-##
-serviceAccounts:
- alertmanager:
- create: true
- name:
- annotations: {}
-alertmanager:
- ## If false, alertmanager will not be installed
- ##
- enabled: true
-
- ## Use a ClusterRole (and ClusterRoleBinding)
- ## - If set to false - we define a Role and RoleBinding in the defined namespaces ONLY
- ## This makes alertmanager work - for users who do not have ClusterAdmin privs, but wants alertmanager to operate on their own namespaces, instead of clusterwide.
- useClusterRole: true
-
- ## Set to a rolename to use existing role - skipping role creating - but still doing serviceaccount and rolebinding to the rolename set here.
- useExistingRole: false
-
- ## alertmanager container name
- ##
- name: alertmanager
-
- ## alertmanager container image
- ##
- image:
- repository: quay.io/prometheus/alertmanager
- tag: v0.23.0
- pullPolicy: IfNotPresent
-
- ## alertmanager priorityClassName
- ##
- priorityClassName: ""
-
- ## Custom HTTP headers for Readiness Probe
- ##
- ## Useful for providing HTTP Basic Auth to healthchecks
- probeHeaders: []
-
- ## Additional alertmanager container arguments
- ##
- extraArgs: {}
-
- ## Additional InitContainers to initialize the pod
- ##
- extraInitContainers: []
+nodeSelector: {}
- ## The URL prefix at which the container can be accessed. Useful in the case the '-web.external-url' includes a slug
- ## so that the various internal URLs are still able to access as they are in the default case.
- ## (Optional)
- prefixURL: ""
+tolerations: []
- ## External URL which can access alertmanager
- baseURL: "http://localhost:9093"
+affinity: {}
- ## Additional alertmanager container environment variable
- ## For instance to add a http_proxy
- ##
- extraEnv: {}
-
- ## Additional alertmanager Secret mounts
- # Defines additional mounts with secrets. Secrets must be manually created in the namespace.
- extraSecretMounts: []
- # - name: secret-files
- # mountPath: /etc/secrets
- # subPath: ""
- # secretName: alertmanager-secret-files
- # readOnly: true
+## Pod anti-affinity can prevent the scheduler from placing Alertmanager replicas on the same node.
+## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
+## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
+## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
+##
+podAntiAffinity: ""
- ## Additional alertmanager Configmap mounts
- extraConfigmapMounts: []
- # - name: template-files
- # mountPath: /etc/config/templates.d
- # configMap: alertmanager-template-files
- # readOnly: true
+## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
+## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
+##
+podAntiAffinityTopologyKey: kubernetes.io/hostname
- ## ConfigMap override where fullname is {{.Release.Name}}-{{.Values.alertmanager.configMapOverrideName}}
- ## Defining configMapOverrideName will cause templates/alertmanager-configmap.yaml
- ## to NOT generate a ConfigMap resource
- ##
- configMapOverrideName: ""
+## Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
+## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
+topologySpreadConstraints: []
+ # - maxSkew: 1
+ # topologyKey: failure-domain.beta.kubernetes.io/zone
+ # whenUnsatisfiable: DoNotSchedule
+ # labelSelector:
+ # matchLabels:
+ # app.kubernetes.io/instance: alertmanager
- ## 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: ""
+statefulSet:
+ annotations: {}
- ## 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
- ##
- enabled: false
-
- # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
- # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
- # ingressClassName: nginx
-
- ## alertmanager Ingress annotations
- ##
- annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: 'true'
-
- ## alertmanager Ingress additional labels
- ##
- extraLabels: {}
-
- ## alertmanager Ingress hostnames with optional path
- ## Must be provided if Ingress is enabled
- ##
- hosts: []
- # - alertmanager.domain.com
- # - domain.com/alertmanager
+podAnnotations: {}
+podLabels: {}
- path: /
+# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
+podDisruptionBudget: {}
+ # maxUnavailable: 1
+ # minAvailable: 1
- # pathType is only for k8s >= 1.18
- pathType: Prefix
-
- ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
- extraPaths: []
- # - path: /*
- # backend:
- # serviceName: ssl-redirect
- # servicePort: use-annotation
-
- ## alertmanager Ingress TLS configuration
- ## Secrets must be manually created in the namespace
- ##
- tls: []
- # - secretName: prometheus-alerts-tls
- # hosts:
- # - alertmanager.domain.com
-
- ## Alertmanager Deployment Strategy type
- # strategy:
- # type: Recreate
-
- ## Node tolerations for alertmanager scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
- ## Node labels for alertmanager pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
+command: []
- ## Pod affinity
- ##
- affinity: {}
+podSecurityPolicy:
+ enabled: false
- ## PodDisruptionBudget settings
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
+networkPolicy:
+ ## Enable creation of NetworkPolicy resources.
##
- podDisruptionBudget:
- enabled: false
- maxUnavailable: 1
+ enabled: false
- ## Use an alternate scheduler, e.g. "stork".
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- # schedulerName:
-
- persistentVolume:
- ## If true, alertmanager will create/use a Persistent Volume Claim
- ## If false, use emptyDir
- ##
- enabled: true
-
- ## alertmanager data Persistent Volume access modes
- ## Must match those of existing PV or dynamic provisioner
- ## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- accessModes:
- - ReadWriteOnce
-
- ## alertmanager data Persistent Volume Claim annotations
- ##
- annotations: {}
-
- ## alertmanager data Persistent Volume existing claim name
- ## Requires alertmanager.persistentVolume.enabled: true
- ## If defined, PVC must be created manually before volume will be bound
- existingClaim: ""
-
- ## alertmanager data Persistent Volume mount root path
- ##
- mountPath: /data
-
- ## alertmanager data Persistent Volume size
- ##
- size: 2Gi
-
- ## alertmanager data Persistent Volume Storage Class
- ## If defined, storageClassName: <storageClass>
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
-
- ## alertmanager data Persistent Volume Binding Mode
- ## If defined, volumeBindingMode: <volumeBindingMode>
- ## If undefined (the default) or set to null, no volumeBindingMode spec is
- ## set, choosing the default mode.
- ##
- # volumeBindingMode: ""
-
- ## Subdirectory of alertmanager data Persistent Volume to mount
- ## Useful if the volume's root directory is not empty
- ##
- subPath: ""
-
- ## Persistent Volume Claim Selector
- ## Useful if Persistent Volumes have been provisioned in advance
- ## Ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector
- ##
- # selector:
- # matchLabels:
- # release: "stable"
- # matchExpressions:
- # - { key: environment, operator: In, values: [ dev ] }
-
- emptyDir:
- ## alertmanager emptyDir volume size limit
- ##
- sizeLimit: ""
-
- ## Annotations to be added to alertmanager pods
- ##
- podAnnotations: {}
- ## Tell prometheus to use a specific set of alertmanager pods
- ## instead of all alertmanager pods found in the same namespace
- ## Useful if you deploy multiple releases within the same namespace
+persistence:
+ enabled: true
+ ## Persistent Volume Storage Class
+ ## If defined, storageClassName: <storageClass>
+ ## If set to "-", storageClassName: "", which disables dynamic provisioning
+ ## If undefined (the default) or set to null, no storageClassName spec is
+ ## set, choosing the default provisioner.
##
- ## prometheus.io/probe: alertmanager-teamA
-
- ## Labels to be added to Prometheus AlertManager pods
+ # storageClass: "-"
+ accessModes:
+ - ReadWriteOnce
+ size: 50Mi
+
+config:
+ global: {}
+ # slack_api_url: ''
+
+ templates:
+ - '/etc/alertmanager/*.tmpl'
+
+ receivers:
+ - name: default-receiver
+ # slack_configs:
+ # - channel: '@you'
+ # send_resolved: true
+
+ route:
+ group_wait: 10s
+ group_interval: 5m
+ receiver: default-receiver
+ repeat_interval: 3h
+
+## Monitors ConfigMap changes and POSTs to a URL
+## Ref: https://github.com/jimmidyson/configmap-reload
+##
+configmapReload:
+ ## If false, the configmap-reload container will not be deployed
##
- podLabels: {}
+ enabled: false
- ## Specify if a Pod Security Policy for node-exporter must be created
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
+ ## configmap-reload container name
##
- podSecurityPolicy:
- annotations: {}
- ## Specify pod annotations
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
- ##
- # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
- # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
-
- ## Use a StatefulSet if replicaCount needs to be greater than 1 (see below)
- ##
- replicaCount: 1
+ name: configmap-reload
- ## Annotations to be added to deployment
+ ## configmap-reload container image
##
- deploymentAnnotations: {}
-
- statefulSet:
- ## If true, use a statefulset instead of a deployment for pod management.
- ## This allows to scale replicas to more than 1 pod
- ##
- enabled: false
-
- annotations: {}
- labels: {}
- podManagementPolicy: OrderedReady
-
- ## Alertmanager headless service to use for the statefulset
- ##
- headless:
- annotations: {}
- labels: {}
-
- ## Enabling peer mesh service end points for enabling the HA alert manager
- ## Ref: https://github.com/prometheus/alertmanager/blob/master/README.md
- enableMeshPeer: false
+ image:
+ repository: jimmidyson/configmap-reload
+ tag: v0.8.0
+ pullPolicy: IfNotPresent
- servicePort: 80
+ # containerPort: 9533
- ## alertmanager resource requests and limits
+ ## configmap-reload resource requests and limits
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources: {}
- # limits:
- # cpu: 10m
- # memory: 32Mi
- # requests:
- # cpu: 10m
- # memory: 32Mi
- # Custom DNS configuration to be added to alertmanager pods
- dnsConfig: {}
- # nameservers:
- # - 1.2.3.4
- # searches:
- # - ns1.svc.cluster-domain.example
- # - my.dns.search.suffix
- # options:
- # - name: ndots
- # value: "2"
- # - name: edns0
+templates: {}
+# alertmanager.tmpl: |-
- ## Security context to be added to alertmanager pods
- ##
- securityContext:
- runAsUser: 65534
- runAsNonRoot: true
- runAsGroup: 65534
- fsGroup: 65534
-
- service:
- annotations: {}
- labels: {}
- clusterIP: ""
-
- ## Enabling peer mesh service end points for enabling the HA alert manager
- ## Ref: https://github.com/prometheus/alertmanager/blob/master/README.md
- # enableMeshPeer : true
-
- ## List of IP addresses at which the alertmanager service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
-
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 80
- # nodePort: 30000
- sessionAffinity: None
- type: ClusterIP
-
- ## List of initial peers
- ## Ref: https://github.com/prometheus/alertmanager/blob/main/README.md#high-availability
- clusterPeers: []
\ No newline at end of file
+## Optionally specify extra list of additional volumeMounts
+extraVolumeMounts: []
+ # - name: extras
+ # mountPath: /usr/share/extras
+ # readOnly: true
+
+## Optionally specify extra list of additional volumes
+extraVolumes: []
+ # - name: extras
+ # emptyDir: {}
+
+## Optionally specify extra environment variables to add to alertmanager container
+extraEnv: []
+ # - name: FOO
+ # value: BAR
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/.helmignore b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/.helmignore
index 0e8a0eb3..f0c13194 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/.helmignore
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/.helmignore
@@ -14,10 +14,8 @@
*.swp
*.bak
*.tmp
-*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
-.vscode/
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/Chart.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/Chart.yaml
index 2958f29e..6d28c2d2 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/Chart.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/Chart.yaml
@@ -14,26 +14,19 @@
# limitations under the License.
apiVersion: v2
+appVersion: 2.8.0
+description: Install kube-state-metrics to generate and expose cluster-level metrics
+home: https://github.com/kubernetes/kube-state-metrics/
+keywords:
+ - metric
+ - monitoring
+ - prometheus
+ - kubernetes
+maintainers:
+ - email: dev@dubbo.apache.org
+ name: dubbo
name: kube-state-metrics
-description: A Helm chart for Kubernetes
-
-# A chart can be either an 'application' or a 'library' chart.
-#
-# Application charts are a collection of templates that can be packaged into versioned archives
-# to be deployed.
-#
-# Library charts provide useful utilities or functions for the chart developer. They're included as
-# a dependency of application charts to inject those utilities and functions into the rendering
-# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+sources:
+ - https://github.com/kubernetes/kube-state-metrics/
type: application
-
-# This is the chart version. This version number should be incremented each time you make changes
-# to the chart and its templates, including the app version.
-# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 0.1.0
-
-# This is the version number of the application being deployed. This version number should be
-# incremented each time you make changes to the application. Versions are not expected to
-# follow Semantic Versioning. They should reflect the version the application is using.
-# It is recommended to use it with quotes.
-appVersion: "1.16.0"
+version: 4.30.0
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/_charts.tpl b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/_charts.tpl
index 09dc7836..c6caec89 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/_charts.tpl
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/_charts.tpl
@@ -1,3 +1,11 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "kube-state-metrics.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
@@ -16,14 +24,6 @@ If release name contains chart name it will be used as a full name.
{{- end -}}
{{- end -}}
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "kube-state-metrics.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
{{/*
Create the name of the service account to use
*/}}
@@ -39,11 +39,11 @@ Create the name of the service account to use
Allow the release namespace to be overridden for multi-namespace deployments in combined charts
*/}}
{{- define "kube-state-metrics.namespace" -}}
-{{- if .Values.namespaceOverride -}}
+ {{- if .Values.namespaceOverride -}}
{{- .Values.namespaceOverride -}}
-{{- else -}}
+ {{- else -}}
{{- .Release.Namespace -}}
-{{- end -}}
+ {{- end -}}
{{- end -}}
{{/*
@@ -77,6 +77,42 @@ release: {{ .Release.Name }}
Selector labels
*/}}
{{- define "kube-state-metrics.selectorLabels" }}
+{{- if .Values.selectorOverride }}
+{{ toYaml .Values.selectorOverride }}
+{{- else }}
app.kubernetes.io/name: {{ include "kube-state-metrics.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end }}
\ No newline at end of file
+{{- end }}
+{{- end }}
+
+{{/* Sets default scrape limits for servicemonitor */}}
+{{- define "servicemonitor.scrapeLimits" -}}
+{{- with .sampleLimit }}
+sampleLimit: {{ . }}
+{{- end }}
+{{- with .targetLimit }}
+targetLimit: {{ . }}
+{{- end }}
+{{- with .labelLimit }}
+labelLimit: {{ . }}
+{{- end }}
+{{- with .labelNameLengthLimit }}
+labelNameLengthLimit: {{ . }}
+{{- end }}
+{{- with .labelValueLengthLimit }}
+labelValueLengthLimit: {{ . }}
+{{- end }}
+{{- end -}}
+
+{{/*
+Formats imagePullSecrets. Input is (dict "Values" .Values "imagePullSecrets" .{specific imagePullSecrets})
+*/}}
+{{- define "kube-state-metrics.imagePullSecrets" -}}
+{{- range (concat .Values.global.imagePullSecrets .imagePullSecrets) }}
+ {{- if eq (typeOf .) "map[string]interface {}" }}
+- {{ toYaml . | trim }}
+ {{- else }}
+- name: {{ . }}
+ {{- end }}
+{{- end }}
+{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml
index b713fa24..ad928731 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.rbac.create .Values.rbac.useClusterRole -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.rbac.create .Values.rbac.useClusterRole -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/deployment.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/deployment.yaml
index 3a910cdb..d37e8e11 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/deployment.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/deployment.yaml
@@ -24,6 +24,10 @@ metadata:
namespace: {{ template "kube-state-metrics.namespace" . }}
labels:
{{- include "kube-state-metrics.labels" . | indent 4 }}
+ {{- if .Values.annotations }}
+ annotations:
+{{ toYaml .Values.annotations | indent 4 }}
+ {{- end }}
spec:
selector:
matchLabels:
@@ -45,16 +49,15 @@ spec:
hostNetwork: {{ .Values.hostNetwork }}
serviceAccountName: {{ template "kube-state-metrics.serviceAccountName" . }}
{{- if .Values.securityContext.enabled }}
- securityContext:
- fsGroup: {{ .Values.securityContext.fsGroup }}
- runAsGroup: {{ .Values.securityContext.runAsGroup }}
- runAsUser: {{ .Values.securityContext.runAsUser }}
+ securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName }}
{{- end }}
containers:
- - name: {{ .Chart.Name }}
+ {{- $httpPort := ternary 9090 (.Values.service.port | default 8080) .Values.kubeRBACProxy.enabled}}
+ {{- $telemetryPort := ternary 9091 (.Values.selfMonitor.telemetryPort | default 8081) .Values.kubeRBACProxy.enabled}}
+ - name: {{ template "kube-state-metrics.name" . }}
{{- if .Values.autosharding.enabled }}
env:
- name: POD_NAME
@@ -68,13 +71,9 @@ spec:
{{- end }}
args:
{{- if .Values.extraArgs }}
- {{- range .Values.extraArgs }}
- - {{ . }}
- {{- end }}
- {{- end }}
- {{- if .Values.service.port }}
- - --port={{ .Values.service.port | default 8080}}
+ {{- .Values.extraArgs | toYaml | nindent 8 }}
{{- end }}
+ - --port={{ $httpPort }}
{{- if .Values.collectors }}
- --resources={{ .Values.collectors | join "," }}
{{- end }}
@@ -90,8 +89,20 @@ spec:
{{- if .Values.metricDenylist }}
- --metric-denylist={{ .Values.metricDenylist | join "," }}
{{- end }}
+ {{- $namespaces := list }}
{{- if .Values.namespaces }}
- - --namespaces={{ tpl (.Values.namespaces | join ",") $ }}
+ {{- range $ns := join "," .Values.namespaces | split "," }}
+ {{- $namespaces = append $namespaces (tpl $ns $) }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.releaseNamespace }}
+ {{- $namespaces = append $namespaces ( include "kube-state-metrics.namespace" . ) }}
+ {{- end }}
+ {{- if $namespaces }}
+ - --namespaces={{ $namespaces | mustUniq | join "," }}
+ {{- end }}
+ {{- if .Values.namespacesDenylist }}
+ - --namespaces-denylist={{ tpl (.Values.namespacesDenylist | join ",") $ }}
{{- end }}
{{- if .Values.autosharding.enabled }}
- --pod=$(POD_NAME)
@@ -100,35 +111,53 @@ spec:
{{- if .Values.kubeconfig.enabled }}
- --kubeconfig=/opt/k8s/.kube/config
{{- end }}
+ {{- if .Values.kubeRBACProxy.enabled }}
+ - --telemetry-host=127.0.0.1
+ - --telemetry-port={{ $telemetryPort }}
+ {{- else }}
{{- if .Values.selfMonitor.telemetryHost }}
- --telemetry-host={{ .Values.selfMonitor.telemetryHost }}
{{- end }}
- - --telemetry-port={{ .Values.selfMonitor.telemetryPort | default 8081 }}
- {{- if .Values.kubeconfig.enabled }}
+ {{- if .Values.selfMonitor.telemetryPort }}
+ - --telemetry-port={{ $telemetryPort }}
+ {{- end }}
+ {{- end }}
+ {{- if or (.Values.kubeconfig.enabled) (.Values.volumeMounts) }}
volumeMounts:
+ {{- if .Values.kubeconfig.enabled }}
- name: kubeconfig
mountPath: /opt/k8s/.kube/
readOnly: true
{{- end }}
+ {{- if .Values.volumeMounts }}
+{{ toYaml .Values.volumeMounts | indent 8 }}
+ {{- end }}
+ {{- end }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+ {{- if .Values.image.sha }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (print "v" .Chart.AppVersion) }}@sha256:{{ .Values.image.sha }}"
+ {{- else }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (print "v" .Chart.AppVersion) }}"
+ {{- end }}
+ {{- if eq .Values.kubeRBACProxy.enabled false }}
ports:
- containerPort: {{ .Values.service.port | default 8080}}
name: "http"
{{- if .Values.selfMonitor.enabled }}
- - containerPort: {{ .Values.selfMonitor.telemetryPort | default 8081 }}
+ - containerPort: {{ $telemetryPort }}
name: "metrics"
{{- end }}
+ {{- end }}
livenessProbe:
httpGet:
path: /healthz
- port: {{ .Values.service.port | default 8080}}
+ port: {{ $httpPort }}
initialDelaySeconds: 5
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /
- port: {{ .Values.service.port | default 8080}}
+ port: {{ $httpPort }}
initialDelaySeconds: 5
timeoutSeconds: 5
{{- if .Values.resources }}
@@ -139,9 +168,89 @@ spec:
securityContext:
{{ toYaml .Values.containerSecurityContext | indent 10 }}
{{- end }}
-{{- if .Values.imagePullSecrets }}
+ {{- if .Values.kubeRBACProxy.enabled }}
+ - name: kube-rbac-proxy-http
+ args:
+ {{- if .Values.kubeRBACProxy.extraArgs }}
+ {{- .Values.kubeRBACProxy.extraArgs | toYaml | nindent 8 }}
+ {{- end }}
+ - --secure-listen-address=:{{ .Values.service.port | default 8080}}
+ - --upstream=http://127.0.0.1:{{ $httpPort }}/
+ - --proxy-endpoints-port=8888
+ - --config-file=/etc/kube-rbac-proxy-config/config-file.yaml
+ volumeMounts:
+ - name: kube-rbac-proxy-config
+ mountPath: /etc/kube-rbac-proxy-config
+ imagePullPolicy: {{ .Values.kubeRBACProxy.image.pullPolicy }}
+ {{- if .Values.kubeRBACProxy.image.sha }}
+ image: "{{ .Values.kubeRBACProxy.image.repository }}:{{ .Values.kubeRBACProxy.image.tag }}@sha256:{{ .Values.kubeRBACProxy.image.sha }}"
+ {{- else }}
+ image: "{{ .Values.kubeRBACProxy.image.repository }}:{{ .Values.kubeRBACProxy.image.tag }}"
+ {{- end }}
+ ports:
+ - containerPort: {{ .Values.service.port | default 8080}}
+ name: "http"
+ - containerPort: 8888
+ name: "http-healthz"
+ readinessProbe:
+ httpGet:
+ scheme: HTTPS
+ port: 8888
+ path: healthz
+ initialDelaySeconds: 5
+ timeoutSeconds: 5
+ {{- if .Values.kubeRBACProxy.resources }}
+ resources:
+{{ toYaml .Values.kubeRBACProxy.resources | indent 10 }}
+{{- end }}
+{{- if .Values.kubeRBACProxy.containerSecurityContext }}
+ securityContext:
+{{ toYaml .Values.kubeRBACProxy.containerSecurityContext | indent 10 }}
+{{- end }}
+ {{- if .Values.selfMonitor.enabled }}
+ - name: kube-rbac-proxy-telemetry
+ args:
+ {{- if .Values.kubeRBACProxy.extraArgs }}
+ {{- .Values.kubeRBACProxy.extraArgs | toYaml | nindent 8 }}
+ {{- end }}
+ - --secure-listen-address=:{{ .Values.selfMonitor.telemetryPort | default 8081 }}
+ - --upstream=http://127.0.0.1:{{ $telemetryPort }}/
+ - --proxy-endpoints-port=8889
+ - --config-file=/etc/kube-rbac-proxy-config/config-file.yaml
+ volumeMounts:
+ - name: kube-rbac-proxy-config
+ mountPath: /etc/kube-rbac-proxy-config
+ imagePullPolicy: {{ .Values.kubeRBACProxy.image.pullPolicy }}
+ {{- if .Values.kubeRBACProxy.image.sha }}
+ image: "{{ .Values.kubeRBACProxy.image.repository }}:{{ .Values.kubeRBACProxy.image.tag }}@sha256:{{ .Values.kubeRBACProxy.image.sha }}"
+ {{- else }}
+ image: "{{ .Values.kubeRBACProxy.image.repository }}:{{ .Values.kubeRBACProxy.image.tag }}"
+ {{- end }}
+ ports:
+ - containerPort: {{ .Values.selfMonitor.telemetryPort | default 8081 }}
+ name: "metrics"
+ - containerPort: 8889
+ name: "metrics-healthz"
+ readinessProbe:
+ httpGet:
+ scheme: HTTPS
+ port: 8889
+ path: healthz
+ initialDelaySeconds: 5
+ timeoutSeconds: 5
+ {{- if .Values.kubeRBACProxy.resources }}
+ resources:
+{{ toYaml .Values.kubeRBACProxy.resources | indent 10 }}
+{{- end }}
+{{- if .Values.kubeRBACProxy.containerSecurityContext }}
+ securityContext:
+{{ toYaml .Values.kubeRBACProxy.containerSecurityContext | indent 10 }}
+{{- end }}
+ {{- end }}
+ {{- end }}
+{{- if or .Values.imagePullSecrets .Values.global.imagePullSecrets }}
imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 8 }}
+ {{- include "kube-state-metrics.imagePullSecrets" (dict "Values" .Values "imagePullSecrets" .Values.imagePullSecrets) | indent 8 }}
{{- end }}
{{- if .Values.affinity }}
affinity:
@@ -155,9 +264,23 @@ spec:
tolerations:
{{ toYaml .Values.tolerations | indent 8 }}
{{- end }}
- {{- if .Values.kubeconfig.enabled}}
+ {{- if .Values.topologySpreadConstraints }}
+ topologySpreadConstraints:
+{{ toYaml .Values.topologySpreadConstraints | indent 8 }}
+ {{- end }}
+ {{- if or (.Values.kubeconfig.enabled) (.Values.volumes) (.Values.kubeRBACProxy.enabled) }}
volumes:
+ {{- if .Values.kubeconfig.enabled}}
- name: kubeconfig
secret:
secretName: {{ template "kube-state-metrics.fullname" . }}-kubeconfig
{{- end }}
+ {{- if .Values.kubeRBACProxy.enabled}}
+ - name: kube-rbac-proxy-config
+ configMap:
+ name: {{ template "kube-state-metrics.fullname" . }}-rbac-config
+ {{- end }}
+ {{- if .Values.volumes }}
+{{ toYaml .Values.volumes | indent 8 }}
+ {{- end }}
+ {{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/pdb.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/pdb.yaml
index a08612c2..7890e264 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/pdb.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/pdb.yaml
@@ -14,7 +14,11 @@
# limitations under the License.
{{- if .Values.podDisruptionBudget -}}
+{{ if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" -}}
+apiVersion: policy/v1
+{{- else -}}
apiVersion: policy/v1beta1
+{{- end }}
kind: PodDisruptionBudget
metadata:
name: {{ template "kube-state-metrics.fullname" . }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml
index f07d8e62..13e601bd 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.podSecurityPolicy.enabled }}
+{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml
index 53e33712..20663fb5 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.podSecurityPolicy.enabled .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml
index e8b513c2..2ca3cdcb 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.podSecurityPolicy.enabled .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rbac-configmap.yaml
similarity index 64%
copy from deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml
copy to deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rbac-configmap.yaml
index 0a61be9b..1f32b211 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rbac-configmap.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.kubeRBACProxy.enabled }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,15 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.kubeconfig.enabled -}}
apiVersion: v1
-kind: Secret
+kind: ConfigMap
metadata:
- name: {{ template "kube-state-metrics.fullname" . }}-kubeconfig
- namespace: {{ template "kube-state-metrics.namespace" . }}
- labels:
- {{- include "kube-state-metrics.labels" . | indent 4 }}
-type: Opaque
+ name: {{ template "kube-state-metrics.fullname" . }}-rbac-config
data:
- config: '{{ .Values.kubeconfig.secret }}'
-{{- end -}}
+ config-file.yaml: |+
+ authorization:
+ resourceAttributes:
+ namespace: {{ template "kube-state-metrics.namespace" . }}
+ apiVersion: v1
+ resource: services
+ subresource: {{ template "kube-state-metrics.fullname" . }}
+ name: {{ template "kube-state-metrics.fullname" . }}
+{{- end }}
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/role.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/role.yaml
index 55e6554d..eed1796f 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/role.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/role.yaml
@@ -14,8 +14,7 @@
# limitations under the License.
{{- if and (eq .Values.rbac.create true) (not .Values.rbac.useExistingRole) -}}
-{{- range (ternary (split "," .Values.namespaces) (list "") (eq $.Values.rbac.useClusterRole false)) }}
----
+{{- range (ternary (join "," .Values.namespaces | split "," ) (list "") (eq $.Values.rbac.useClusterRole false)) }}
apiVersion: rbac.authorization.k8s.io/v1
{{- if eq $.Values.rbac.useClusterRole false }}
kind: Role
@@ -84,6 +83,12 @@ rules:
- jobs
verbs: ["list", "watch"]
{{ end -}}
+{{ if has "leases" $.Values.collectors }}
+- apiGroups: ["coordination.k8s.io"]
+ resources:
+ - leases
+ verbs: ["list", "watch"]
+{{ end -}}
{{ if has "limitranges" $.Values.collectors }}
- apiGroups: [""]
resources:
@@ -198,5 +203,18 @@ rules:
- verticalpodautoscalers
verbs: ["list", "watch"]
{{ end -}}
+{{- if $.Values.kubeRBACProxy.enabled }}
+- apiGroups: ["authentication.k8s.io"]
+ resources:
+ - tokenreviews
+ verbs: ["create"]
+- apiGroups: ["authorization.k8s.io"]
+ resources:
+ - subjectaccessreviews
+ verbs: ["create"]
+{{- end }}
+{{ if $.Values.rbac.extraRules }}
+{{ toYaml $.Values.rbac.extraRules }}
+{{ end }}
{{- end -}}
{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rolebinding.yaml
index d986c603..b8e7028f 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/rolebinding.yaml
@@ -1,21 +1,20 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
- # contributor license agreements. See the NOTICE file distributed with
- # this work for additional information regarding copyright ownership.
- # The ASF licenses this file to You under the Apache License, Version 2.0
- # (the "License"); you may not use this file except in compliance with
- # the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
{{- if and (eq .Values.rbac.create true) (eq .Values.rbac.useClusterRole false) -}}
-{{- range (split "," $.Values.namespaces) }}
----
+{{- range (join "," $.Values.namespaces) | split "," }}
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/secret.yaml
similarity index 100%
rename from deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml
rename to deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/secret.yaml
index 0a61be9b..b1127ea3 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/secret.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.kubeconfig.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.kubeconfig.enabled -}}
apiVersion: v1
kind: Secret
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/service.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/service.yaml
index 04de5166..ac804ef7 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/service.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/service.yaml
@@ -42,9 +42,23 @@ spec:
protocol: TCP
port: {{ .Values.selfMonitor.telemetryPort | default 8081 }}
targetPort: {{ .Values.selfMonitor.telemetryPort | default 8081 }}
+ {{- if .Values.selfMonitor.telemetryNodePort }}
+ nodePort: {{ .Values.selfMonitor.telemetryNodePort }}
+ {{- end }}
{{ end }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: "{{ .Values.service.loadBalancerIP }}"
+{{- end }}
+{{- if .Values.service.loadBalancerSourceRanges }}
+ loadBalancerSourceRanges:
+ {{- range $cidr := .Values.service.loadBalancerSourceRanges }}
+ - {{ $cidr }}
+ {{- end }}
+{{- end }}
+{{- if .Values.autosharding.enabled }}
+ clusterIP: None
+{{- else if .Values.service.clusterIP }}
+ clusterIP: "{{ .Values.service.clusterIP }}"
{{- end }}
selector:
{{- include "kube-state-metrics.selectorLabels" . | indent 4 }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml
index befc6fb3..cd36abe7 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.serviceAccount.create -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
@@ -26,5 +26,5 @@ metadata:
{{ toYaml .Values.serviceAccount.annotations | indent 4 }}
{{- end }}
imagePullSecrets:
-{{ toYaml .Values.serviceAccount.imagePullSecrets | indent 2 }}
+ {{- include "kube-state-metrics.imagePullSecrets" (dict "Values" .Values "imagePullSecrets" .Values.serviceAccount.imagePullSecrets) | indent 2 }}
{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml
index 27fa92c0..1f3e6e2c 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.prometheus.monitor.enabled }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.prometheus.monitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
@@ -26,11 +26,20 @@ metadata:
{{- end }}
spec:
jobLabel: {{ default "app.kubernetes.io/name" .Values.prometheus.monitor.jobLabel }}
+ {{- with .Values.prometheus.monitor.targetLabels }}
+ targetLabels:
+ {{- toYaml . | trim | nindent 4 }}
+ {{- end }}
+ {{- with .Values.prometheus.monitor.podTargetLabels }}
+ podTargetLabels:
+ {{- toYaml . | trim | nindent 4 }}
+ {{- end }}
+ {{- include "servicemonitor.scrapeLimits" .Values.prometheus.monitor | indent 2 }}
selector:
matchLabels:
- {{- if .Values.prometheus.monitor.selectorOverride -}}
- {{ toYaml .Values.prometheus.monitor.selectorOverride | nindent 6 }}
- {{ else }}
+ {{- with .Values.prometheus.monitor.selectorOverride }}
+ {{- toYaml . | nindent 6 }}
+ {{- else }}
{{- include "kube-state-metrics.selectorLabels" . | indent 6 }}
{{- end }}
endpoints:
@@ -55,6 +64,13 @@ spec:
relabelings:
{{- toYaml .Values.prometheus.monitor.relabelings | nindent 8 }}
{{- end }}
+ {{- if .Values.prometheus.monitor.scheme }}
+ scheme: {{ .Values.prometheus.monitor.scheme }}
+ {{- end }}
+ {{- if .Values.prometheus.monitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml .Values.prometheus.monitor.tlsConfig | nindent 8 }}
+ {{- end }}
{{- if .Values.selfMonitor.enabled }}
- port: metrics
{{- if .Values.prometheus.monitor.interval }}
@@ -77,5 +93,12 @@ spec:
relabelings:
{{- toYaml .Values.prometheus.monitor.relabelings | nindent 8 }}
{{- end }}
+ {{- if .Values.prometheus.monitor.scheme }}
+ scheme: {{ .Values.prometheus.monitor.scheme }}
+ {{- end }}
+ {{- if .Values.prometheus.monitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml .Values.prometheus.monitor.tlsConfig | nindent 8 }}
+ {{- end }}
{{- end }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-role.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-role.yaml
similarity index 100%
rename from deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-role.yaml
rename to deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-role.yaml
index 558f2942..53cc44be 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-role.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-role.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.autosharding.enabled .Values.rbac.create -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.autosharding.enabled .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-rolebinding.yaml
similarity index 100%
rename from deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml
rename to deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-rolebinding.yaml
index 5c81c7e5..71ff6c8d 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/sts-rolebinding.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.autosharding.enabled .Values.rbac.create -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.autosharding.enabled .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/verticalpodautoscaler.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/verticalpodautoscaler.yaml
new file mode 100644
index 00000000..7b024f47
--- /dev/null
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/templates/verticalpodautoscaler.yaml
@@ -0,0 +1,49 @@
+{{- if and (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1") (.Values.verticalPodAutoscaler.enabled) }}
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: autoscaling.k8s.io/v1
+kind: VerticalPodAutoscaler
+metadata:
+ name: {{ template "kube-state-metrics.fullname" . }}
+ namespace: {{ template "kube-state-metrics.namespace" . }}
+ labels:
+ {{- include "kube-state-metrics.labels" . | indent 4 }}
+spec:
+ resourcePolicy:
+ containerPolicies:
+ - containerName: {{ template "kube-state-metrics.name" . }}
+ {{- if .Values.verticalPodAutoscaler.controlledResources }}
+ controlledResources: {{ .Values.verticalPodAutoscaler.controlledResources }}
+ {{- end }}
+ {{- if .Values.verticalPodAutoscaler.maxAllowed }}
+ maxAllowed:
+ {{ toYaml .Values.verticalPodAutoscaler.maxAllowed | nindent 8 }}
+ {{- end }}
+ {{- if .Values.verticalPodAutoscaler.minAllowed }}
+ minAllowed:
+ {{ toYaml .Values.verticalPodAutoscaler.minAllowed | nindent 8 }}
+ {{- end }}
+ targetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ template "kube-state-metrics.fullname" . }}
+ {{- if .Values.verticalPodAutoscaler.updatePolicy }}
+ updatePolicy:
+ {{- if .Values.verticalPodAutoscaler.updatePolicy.updateMode }}
+ updateMode: {{ .Values.verticalPodAutoscaler.updatePolicy.updateMode }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/values.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/values.yaml
index 3538e350..9a7db90c 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/values.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/kube-state-metrics/values.yaml
@@ -14,15 +14,35 @@
# limitations under the License.
# Default values for kube-state-metrics.
+
+name: kube-state-metrics
+nameOverride: ""
+fullnameOverride: ""
prometheusScrape: true
image:
- repository: k8s.gcr.io/kube-state-metrics/kube-state-metrics
- tag: v2.3.0
+ repository: registry.k8s.io/kube-state-metrics/kube-state-metrics
+ # If unset use v + .Charts.appVersion
+ tag: ""
+ sha: ""
pullPolicy: IfNotPresent
imagePullSecrets: []
# - name: "image-pull-secret"
+global:
+ # To help compatibility with other charts which use global.imagePullSecrets.
+ # Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
+ # global:
+ # imagePullSecrets:
+ # - name: pullSecret1
+ # - name: pullSecret2
+ # or
+ # global:
+ # imagePullSecrets:
+ # - pullSecret1
+ # - pullSecret2
+ imagePullSecrets: []
+
# If set to true, this will deploy kube-state-metrics as a StatefulSet and the data
# will be automatically sharded across <.Values.replicas> pods using the built-in
# autodiscovery feature: https://github.com/kubernetes/kube-state-metrics#automated-sharding
@@ -43,11 +63,17 @@ service:
type: ClusterIP
nodePort: 0
loadBalancerIP: ""
+ # Only allow access to the loadBalancerIP from these IPs
+ loadBalancerSourceRanges: []
+ clusterIP: ""
annotations: {}
## Additional labels to add to all resources
customLabels: {}
-# app: kube-state-metrics
+ # app: kube-state-metrics
+
+## Override selector labels
+selectorOverride: {}
## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
releaseLabel: false
@@ -64,6 +90,45 @@ rbac:
# If set to false - Run without Cluteradmin privs needed - ONLY works if namespace is also set (if useExistingRole is set this name is used as ClusterRole or Role to bind to)
useClusterRole: true
+ # Add permissions for CustomResources' apiGroups in Role/ClusterRole. Should be used in conjunction with Custom Resource State Metrics configuration
+ # Example:
+ # - apiGroups: ["monitoring.coreos.com"]
+ # resources: ["prometheuses"]
+ # verbs: ["list", "watch"]
+ extraRules: []
+
+# Configure kube-rbac-proxy. When enabled, creates one kube-rbac-proxy container per exposed HTTP endpoint (metrics and telemetry if enabled).
+# The requests are served through the same service but requests are then HTTPS.
+kubeRBACProxy:
+ enabled: false
+ image:
+ repository: quay.io/brancz/kube-rbac-proxy
+ tag: v0.14.0
+ sha: ""
+ pullPolicy: IfNotPresent
+
+ # List of additional cli arguments to configure kube-rbac-prxy
+ # for example: --tls-cipher-suites, --log-file, etc.
+ # all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage
+ extraArgs: []
+
+ ## Specify security settings for a Container
+ ## Allows overrides and additional options compared to (Pod) securityContext
+ ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
+ containerSecurityContext: {}
+
+ resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 100m
+ # memory: 64Mi
+ # requests:
+ # cpu: 10m
+ # memory: 32Mi
+
serviceAccount:
# Specifies whether a ServiceAccount should be created, require rbac true
create: true
@@ -84,13 +149,36 @@ prometheus:
additionalLabels: {}
namespace: ""
jobLabel: ""
+ targetLabels: []
+ podTargetLabels: []
interval: ""
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
scrapeTimeout: ""
proxyUrl: ""
selectorOverride: {}
honorLabels: false
metricRelabelings: []
relabelings: []
+ scheme: ""
+ tlsConfig: {}
## Specify if a Pod Security Policy for kube-state-metrics must be created
## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
@@ -105,7 +193,7 @@ podSecurityPolicy:
##
# seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
# seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
+ # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
additionalVolumes: []
@@ -132,6 +220,13 @@ affinity: {}
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations: []
+## Topology spread constraints for pod assignment
+## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
+topologySpreadConstraints: []
+
+# Annotations to be added to the deployment/statefulset
+annotations: {}
+
# Annotations to be added to the pod
podAnnotations: {}
@@ -158,7 +253,7 @@ metricDenylist: []
# A single '*' can be provided per resource instead to allow any labels, but that has
# severe performance implications (Example: '=pods=[*]').
metricLabelsAllowlist: []
-# - namespaces=[k8s-label-1,k8s-label-n]
+ # - namespaces=[k8s-label-1,k8s-label-n]
# Comma-separated list of Kubernetes annotations keys that will be used in the resource'
# labels metric. By default the metric contains only name and namespace labels.
@@ -167,7 +262,7 @@ metricLabelsAllowlist: []
# A single '*' can be provided per resource instead to allow any annotations, but that has
# severe performance implications (Example: '=pods=[*]').
metricAnnotationsAllowList: []
-# - pods=[k8s-annotation-1,k8s-annotation-n]
+ # - pods=[k8s-annotation-1,k8s-annotation-n]
# Available collectors for kube-state-metrics.
# By default, all available resources are enabled, comment out to disable.
@@ -181,6 +276,7 @@ collectors:
- horizontalpodautoscalers
- ingresses
- jobs
+ - leases
- limitranges
- mutatingwebhookconfigurations
- namespaces
@@ -207,9 +303,17 @@ kubeconfig:
# base64 encoded kube-config file
secret:
-# Comma-separated list of namespaces to be enabled for collecting resources. By default all namespaces are collected.
+# Enable only the release namespace for collecting resources. By default all namespaces are collected.
+# If releaseNamespace and namespaces are both set a merged list will be collected.
+releaseNamespace: false
+
+# Comma-separated list(string) or yaml list of namespaces to be enabled for collecting resources. By default all namespaces are collected.
namespaces: ""
+# Comma-separated list of namespaces not to be enabled. If namespaces and namespaces-denylist are both set,
+# only namespaces that are excluded in namespaces-denylist will be used.
+namespacesDenylist: ""
+
## Override the deployment namespace
##
namespaceOverride: ""
@@ -224,7 +328,7 @@ resources: {}
# memory: 64Mi
# requests:
# cpu: 10m
-# memory: 32Mi
+ # memory: 32Mi
## Provide a k8s version to define apiGroups for podSecurityPolicy Cluster Role.
## For example: kubeTargetVersionOverride: 1.14.9
@@ -233,7 +337,42 @@ kubeTargetVersionOverride: ""
# Enable self metrics configuration for service and Service Monitor
# Default values for telemetry configuration can be overridden
+# If you set telemetryNodePort, you must also set service.type to NodePort
selfMonitor:
enabled: false
# telemetryHost: 0.0.0.0
# telemetryPort: 8081
+ # telemetryNodePort: 0
+
+# Enable vertical pod autoscaler support for kube-state-metrics
+verticalPodAutoscaler:
+ enabled: false
+ # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
+ controlledResources: []
+
+ # Define the max allowed resources for the pod
+ maxAllowed: {}
+ # cpu: 200m
+ # memory: 100Mi
+ # Define the min allowed resources for the pod
+ minAllowed: {}
+ # cpu: 200m
+ # memory: 100Mi
+
+ # updatePolicy:
+ # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
+ # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
+ # updateMode: Auto
+
+# volumeMounts are used to add custom volume mounts to deployment.
+# See example below
+volumeMounts: []
+# - mountPath: /etc/config
+# name: config-volume
+
+# volumes are used to add custom volumes to deployment
+# See example below
+volumes: []
+# - configMap:
+# name: cm-for-volume
+# name: config-volume
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/.helmignore b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/.helmignore
index aaa0d115..f0c13194 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/.helmignore
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/.helmignore
@@ -16,8 +16,6 @@
*.tmp
*~
# Various IDEs
-.vscode
.project
.idea/
*.tmproj
-OWNERS
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/_charts.tpl b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/_charts.tpl
index da3968a4..f5e2603e 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/_charts.tpl
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/_charts.tpl
@@ -25,14 +25,10 @@ If release name contains chart name it will be used as a full name.
{{- end }}
{{/*
-Allow the release namespace to be overridden for multi-namespace deployments in combined charts
+Create chart name and version as used by the chart label.
*/}}
-{{- define "prometheus-node-exporter.namespace" -}}
-{{- if .Values.namespaceOverride }}
-{{- .Values.namespaceOverride }}
-{{- else }}
-{{- .Release.Namespace }}
-{{- end }}
+{{- define "prometheus-node-exporter.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
@@ -56,16 +52,13 @@ release: {{ .Release.Name }}
{{- end }}
{{/*
-Create chart name and version as used by the chart label.
+Selector labels
*/}}
-{{- define "prometheus-node-exporter.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- define "prometheus-node-exporter.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "prometheus-node-exporter.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
-{{- define "prometheus.nodeExporter.matchLabels" -}}
-component: {{ .Values.nodeExporter.name | quote }}
-{{ include "prometheus.common.matchLabels" . }}
-{{- end -}}
{{/*
Create the name of the service account to use
@@ -82,19 +75,22 @@ Create the name of the service account to use
The image to use
*/}}
{{- define "prometheus-node-exporter.image" -}}
-{{- if .Values.nodeExporter.image.sha }}
-{{- printf "%s:%s@%s" .Values.nodeExporter.image.repository (default (printf "v%s" .Chart.AppVersion) .Values.nodeExporter.image.tag) .Values.nodeExporter.image.sha }}
+{{- if .Values.image.sha }}
+{{- printf "%s:%s@%s" .Values.image.repository (default (printf "v%s" .Chart.AppVersion) .Values.image.tag) .Values.image.sha }}
{{- else }}
-{{- printf "%s:%s" .Values.nodeExporter.image.repository (default (printf "v%s" .Chart.AppVersion) .Values.nodeExporter.image.tag) }}
+{{- printf "%s:%s" .Values.image.repository (default (printf "v%s" .Chart.AppVersion) .Values.image.tag) }}
{{- end }}
{{- end }}
{{/*
-Selector labels
+Allow the release namespace to be overridden for multi-namespace deployments in combined charts
*/}}
-{{- define "prometheus-node-exporter.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "prometheus-node-exporter.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
+{{- define "prometheus-node-exporter.namespace" -}}
+{{- if .Values.namespaceOverride }}
+{{- .Values.namespaceOverride }}
+{{- else }}
+{{- .Release.Namespace }}
+{{- end }}
{{- end }}
{{/*
@@ -110,4 +106,23 @@ Create the namespace name of the service monitor
{{- .Release.Namespace }}
{{- end }}
{{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
+
+{{/* Sets default scrape limits for servicemonitor */}}
+{{- define "servicemonitor.scrapeLimits" -}}
+{{- with .sampleLimit }}
+sampleLimit: {{ . }}
+{{- end }}
+{{- with .targetLimit }}
+targetLimit: {{ . }}
+{{- end }}
+{{- with .labelLimit }}
+labelLimit: {{ . }}
+{{- end }}
+{{- with .labelNameLengthLimit }}
+labelNameLengthLimit: {{ . }}
+{{- end }}
+{{- with .labelValueLengthLimit }}
+labelValueLengthLimit: {{ . }}
+{{- end }}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/daemonset.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/daemonset.yaml
index 7f1bdd0b..615a6f2b 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/daemonset.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/daemonset.yaml
@@ -57,7 +57,7 @@ spec:
containers:
- name: node-exporter
image: {{ include "prometheus-node-exporter.image" . }}
- imagePullPolicy: {{ .Values.nodeExporter.image.pullPolicy }}
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
args:
- --path.procfs=/host/proc
- --path.sysfs=/host/sys
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/psp.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/psp.yaml
index 62310805..eba1a266 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/psp.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/psp.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.rbac.create .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.rbac.create .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/serviceaccount.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/serviceaccount.yaml
index 01b4bdb3..e1ecf05a 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/serviceaccount.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/templates/serviceaccount.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.rbac.create .Values.serviceAccount.create -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.rbac.create .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
@@ -25,7 +25,7 @@ metadata:
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
-{{- with .Values.imagePullSecrets }}
+{{- with .Values.serviceAccount.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 2 }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/values.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/values.yaml
index 07168b6d..d26571c3 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/values.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/node-exporter/values.yaml
@@ -13,13 +13,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-rbac:
- create: true
-
-podSecurityPolicy:
- enabled: false
-
-imagePullSecrets:
+# Default values for prometheus-node-exporter.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+name: nodeExporter
+nameOverride: ""
+fullnameOverride: ""
+image:
+ repository: quay.io/prometheus/node-exporter
+ # Overrides the image tag whose default is {{ printf "v%s" .Chart.AppVersion }}
+ tag: ""
+ pullPolicy: IfNotPresent
+ sha: ""
+
+imagePullSecrets: []
# - name: "image-pull-secret"
service:
@@ -32,6 +39,107 @@ service:
annotations:
prometheus.io/scrape: "true"
+# Additional environment variables that will be passed to the daemonset
+env: {}
+## env:
+## VARIABLE: value
+
+prometheus:
+ monitor:
+ enabled: false
+ additionalLabels: {}
+ namespace: ""
+
+ jobLabel: ""
+
+ scheme: http
+ basicAuth: {}
+ bearerTokenFile:
+ tlsConfig: {}
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ ## Override serviceMonitor selector
+ ##
+ selectorOverride: {}
+
+ relabelings: []
+ metricRelabelings: []
+ interval: ""
+ scrapeTimeout: 10s
+ ## prometheus.monitor.apiVersion ApiVersion for the serviceMonitor Resource(defaults to "monitoring.coreos.com/v1")
+ apiVersion: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+## Customize the updateStrategy if set
+updateStrategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+
+resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 200m
+ # memory: 50Mi
+ # requests:
+ # cpu: 100m
+ # memory: 30Mi
+
+serviceAccount:
+ # Specifies whether a ServiceAccount should be created
+ create: true
+ # The name of the ServiceAccount to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name:
+ annotations: {}
+ imagePullSecrets: []
+ automountServiceAccountToken: false
+
+securityContext:
+ fsGroup: 65534
+ runAsGroup: 65534
+ runAsNonRoot: true
+ runAsUser: 65534
+
+containerSecurityContext: {}
+ # capabilities:
+ # add:
+ # - SYS_TIME
+
+rbac:
+ ## If true, create & use RBAC resources
+ ##
+ create: true
+ ## If true, create & use Pod Security Policy resources
+ ## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
+ pspEnabled: true
+ pspAnnotations: {}
+
# for deployments that have node_exporter deployed outside of the cluster, list
# their addresses here
endpoints: []
@@ -192,219 +300,10 @@ verticalPodAutoscaler:
# memory: 100Mi
# Define the min allowed resources for the pod
minAllowed: {}
- # cpu: 200m
- # memory: 100Mi
+ # cpu: 200m
+ # memory: 100Mi
- # updatePolicy:
+ # updatePolicy:
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
- # updateMode: Auto
-
-## Define serviceAccount names for components. Defaults to component's fully qualified name.
-##
-serviceAccount:
- create: true
- name:
- annotations: {}
-prometheus:
- monitor:
- enabled: false
- additionalLabels: {}
- namespace: ""
-
- jobLabel: ""
-
- scheme: http
- basicAuth: {}
- bearerTokenFile:
- tlsConfig: {}
-
- ## proxyUrl: URL of a proxy that should be used for scraping.
- ##
- proxyUrl: ""
-
- ## Override serviceMonitor selector
- ##
- selectorOverride: {}
-
- relabelings: []
- metricRelabelings: []
- interval: ""
- scrapeTimeout: 10s
- ## prometheus.monitor.apiVersion ApiVersion for the serviceMonitor Resource(defaults to "monitoring.coreos.com/v1")
- apiVersion: ""
-
- ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
- ##
- sampleLimit: 0
-
- ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
- ##
- targetLimit: 0
-
- ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
- ##
- labelLimit: 0
-
- ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
- ##
- labelNameLengthLimit: 0
-
- ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
- ##
- labelValueLengthLimit: 0
-## applications
-nodeExporter:
- ## If false, node-exporter will not be installed
- ##
- enabled: true
-
- ## If true, node-exporter pods share the host network namespace
- ##
- hostNetwork: true
-
- ## If true, node-exporter pods share the host PID namespace
- ##
- hostPID: true
-
- ## If true, node-exporter pods mounts host / at /host/root
- ##
- hostRootfs: true
-
- ## node-exporter container name
- ##
- name: node-exporter
-
- ## node-exporter container image
- ##
- image:
- repository: quay.io/prometheus/node-exporter
- tag: v1.3.0
- pullPolicy: IfNotPresent
-
- ## Specify if a Pod Security Policy for node-exporter must be created
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
- ##
- podSecurityPolicy:
- annotations: {}
- ## Specify pod annotations
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
- ##
- # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
- # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
-
- ## node-exporter priorityClassName
- ##
- priorityClassName: ""
-
- ## Custom Update Strategy
- ##
- updateStrategy:
- type: RollingUpdate
-
- ## Additional node-exporter container arguments
- ##
- extraArgs: {}
-
- ## Additional InitContainers to initialize the pod
- ##
- extraInitContainers: []
-
- ## Additional node-exporter hostPath mounts
- ##
- extraHostPathMounts: []
- # - name: textfile-dir
- # mountPath: /srv/txt_collector
- # hostPath: /var/lib/node-exporter
- # readOnly: true
- # mountPropagation: HostToContainer
-
- extraConfigmapMounts: []
- # - name: certs-configmap
- # mountPath: /prometheus
- # configMap: certs-configmap
- # readOnly: true
-
- ## Node tolerations for node-exporter scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
- ## Node labels for node-exporter pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
-
- ## Annotations to be added to node-exporter pods
- ##
- podAnnotations: {}
-
- ## Labels to be added to node-exporter pods
- ##
- pod:
- labels: {}
-
- ## PodDisruptionBudget settings
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
- ##
- podDisruptionBudget:
- enabled: false
- maxUnavailable: 1
-
- ## node-exporter resource limits & requests
- ## Ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- # limits:
- # cpu: 200m
- # memory: 50Mi
- # requests:
- # cpu: 100m
- # memory: 30Mi
-
- # Custom DNS configuration to be added to node-exporter pods
- dnsConfig: {}
- # nameservers:
- # - 1.2.3.4
- # searches:
- # - ns1.svc.cluster-domain.example
- # - my.dns.search.suffix
- # options:
- # - name: ndots
- # value: "2"
- # - name: edns0
-
- ## Security context to be added to node-exporter pods
- ##
- securityContext:
- fsGroup: 65534
- runAsGroup: 65534
- runAsNonRoot: true
- runAsUser: 65534
-
- service:
- annotations:
- prometheus.io/scrape: "true"
- labels: {}
-
- # Exposed as a headless service:
- # https://kubernetes.io/docs/concepts/services-networking/service/#headless-services
- clusterIP: None
-
- ## List of IP addresses at which the node-exporter service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
-
- hostPort: 9100
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 9100
- type: ClusterIP
\ No newline at end of file
+ # updateMode: Auto
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/.helmignore b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/.helmignore
index aaa0d115..e90c9f6d 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/.helmignore
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/.helmignore
@@ -16,8 +16,9 @@
*.tmp
*~
# Various IDEs
-.vscode
.project
.idea/
*.tmproj
+
+# OWNERS file for Kubernetes
OWNERS
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/_charts.tpl b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/_charts.tpl
index 33999df2..6f5023e6 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/_charts.tpl
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/_charts.tpl
@@ -1,3 +1,11 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "prometheus-pushgateway.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
@@ -16,19 +24,22 @@ If release name contains chart name it will be used as a full name.
{{- end }}
{{- end }}
-{{/* vim: set filetype=mustache: */}}
{{/*
-Expand the name of the chart.
+Create chart name and version as used by the chart label.
*/}}
-{{- define "prometheus-pushgateway.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- define "prometheus-pushgateway.chart" -}}
+{{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
-Create chart name and version as used by the chart label.
+Create the name of the service account to use
*/}}
-{{- define "prometheus-pushgateway.chart" -}}
-{{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- define "prometheus-pushgateway.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "prometheus-pushgateway.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
{{- end }}
{{/*
@@ -46,11 +57,6 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{- end }}
-{{- define "prometheus.pushgateway.matchLabels" -}}
-component: {{ .Values.pushgateway.name | quote }}
-{{ include "prometheus.common.matchLabels" . }}
-{{- end -}}
-
{{/*
Selector labels
*/}}
@@ -60,13 +66,37 @@ app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
-Create the name of the service account to use
+Return the appropriate apiVersion for networkpolicy.
*/}}
-{{- define "prometheus-pushgateway.serviceAccountName" -}}
-{{- if .Values.serviceAccount.create }}
-{{- default (include "prometheus-pushgateway.fullname" .) .Values.serviceAccount.name }}
+{{- define "prometheus-pushgateway.networkPolicy.apiVersion" -}}
+{{- if semverCompare ">=1.4-0, <1.7-0" .Capabilities.KubeVersion.GitVersion }}
+{{- print "extensions/v1beta1" }}
+{{- else if semverCompare "^1.7-0" .Capabilities.KubeVersion.GitVersion }}
+{{- print "networking.k8s.io/v1" }}
+{{- end }}
+{{- end }}
+
+{{/*
+Define PDB apiVersion
+*/}}
+{{- define "prometheus-pushgateway.pdb.apiVersion" -}}
+{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }}
+{{- print "policy/v1" }}
{{- else }}
-{{- default "default" .Values.serviceAccount.name }}
+{{- print "policy/v1beta" }}
+{{- end }}
+{{- end }}
+
+{{/*
+Define Ingress apiVersion
+*/}}
+{{- define "prometheus-pushgateway.ingress.apiVersion" -}}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
+{{- print "networking.k8s.io/v1" }}
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
+{{- print "networking.k8s.io/v1beta1" }}
+{{- else }}
+{{- print "extensions/v1beta1" }}
{{- end }}
{{- end }}
@@ -91,8 +121,8 @@ containers:
{{- toYaml . | nindent 2 }}
{{- end }}
- name: pushgateway
- image: "{{ .Values.pushgateway.image.repository }}:{{ .Values.pushgateway.image.tag | default .Chart.AppVersion }}"
- imagePullPolicy: {{ .Values.pushgateway.image.pullPolicy }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- with .Values.extraVars }}
env:
{{- toYaml . | nindent 6 }}
@@ -123,9 +153,9 @@ containers:
{{- end }}
volumeMounts:
- name: storage-volume
- mountPath: "{{ .Values.pushgateway.persistentVolume.mountPath }}"
- subPath: "{{ .Values.pushgateway.persistentVolume.subPath }}"
- {{- with .Values.pushgateway.extraVolumeMounts }}
+ mountPath: "{{ .Values.persistentVolume.mountPath }}"
+ subPath: "{{ .Values.persistentVolume.subPath }}"
+ {{- with .Values.extraVolumeMounts }}
{{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.nodeSelector }}
@@ -149,18 +179,18 @@ securityContext:
{{- toYaml . | nindent 2 }}
{{- end }}
volumes:
- {{- $storageVolumeAsPVCTemplate := and .Values.runAsStatefulSet .Values.pushgateway.persistentVolume.enabled -}}
+ {{- $storageVolumeAsPVCTemplate := and .Values.runAsStatefulSet .Values.persistentVolume.enabled -}}
{{- if not $storageVolumeAsPVCTemplate }}
- name: storage-volume
- {{- if .Values.pushgateway.persistentVolume.enabled }}
+ {{- if .Values.persistentVolume.enabled }}
persistentVolumeClaim:
- claimName: {{ if .Values.pushgateway.persistentVolume.existingClaim }}{{ .Values.pushgateway.persistentVolume.existingClaim }}{{- else }}{{ include "prometheus-pushgateway.fullname" . }}{{- end }}
+ claimName: {{ if .Values.persistentVolume.existingClaim }}{{ .Values.persistentVolume.existingClaim }}{{- else }}{{ include "prometheus-pushgateway.fullname" . }}{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
{{- end }}
- {{- if .Values.pushgateway.extraVolumes }}
- {{- toYaml .Values.pushgateway.extraVolumes | nindent 2 }}
+ {{- if .Values.extraVolumes }}
+ {{- toYaml .Values.extraVolumes | nindent 2 }}
{{- else if $storageVolumeAsPVCTemplate }}
[]
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/deployment.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/deployment.yaml
index cbd0a7ad..45c472a6 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/deployment.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/deployment.yaml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if not .Values.pushgateway.runAsStatefulSet }}
+{{- if not .Values.runAsStatefulSet }}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -21,8 +21,8 @@ metadata:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 4 }}
name: {{ include "prometheus-pushgateway.fullname" . }}
spec:
- replicas: {{ .Values.pushgateway.replicaCount }}
- {{- with .Values.pushgateway.strategy }}
+ replicas: {{ .Values.replicaCount }}
+ {{- with .Values.strategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
@@ -31,13 +31,13 @@ spec:
{{- include "prometheus-pushgateway.selectorLabels" . | nindent 6 }}
template:
metadata:
- {{- with .Values.pushgateway.podAnnotations }}
+ {{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 8 }}
- {{- with .Values.pushgateway.podLabels }}
+ {{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/ingress.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/ingress.yaml
index bacb57dc..a64637b1 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/ingress.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/ingress.yaml
@@ -13,17 +13,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.pushgateway.ingress.enabled }}
+{{- if .Values.ingress.enabled }}
{{- $serviceName := include "prometheus-pushgateway.fullname" . }}
-{{- $servicePort := .Values.pushgateway.service.port }}
-{{- $ingressPath := .Values.pushgateway.ingress.path }}
-{{- $ingressClassName := .Values.pushgateway.ingress.className }}
-{{- $ingressPathType := .Values.pushgateway.ingress.pathType }}
-{{- $extraPaths := .Values.pushgateway.ingress.extraPaths }}
+{{- $servicePort := .Values.service.port }}
+{{- $ingressPath := .Values.ingress.path }}
+{{- $ingressClassName := .Values.ingress.className }}
+{{- $ingressPathType := .Values.ingress.pathType }}
+{{- $extraPaths := .Values.ingress.extraPaths }}
apiVersion: {{ include "prometheus-pushgateway.ingress.apiVersion" . }}
kind: Ingress
metadata:
- {{- with .Values.pushgateway.ingress.annotations }}
+ {{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
@@ -35,7 +35,7 @@ spec:
ingressClassName: {{ $ingressClassName }}
{{- end }}
rules:
- {{- range $host := .Values.pushgateway.ingress.hosts }}
+ {{- range $host := .Values.ingress.hosts }}
- host: {{ $host }}
http:
paths:
@@ -57,7 +57,7 @@ spec:
servicePort: {{ $servicePort }}
{{- end }}
{{- end -}}
- {{- with .Values.pushgateway.ingress.tls }}
+ {{- with .Values.ingress.tls }}
tls:
{{- toYaml . | nindent 4 }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/networkpolicy.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/networkpolicy.yaml
index 557ea658..308e11b0 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/networkpolicy.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/networkpolicy.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.networkPolicy }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,15 +14,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.pushgateway.networkPolicy }}
-apiVersion: networking.k8s.io/v1
+apiVersion: {{ include "prometheus-pushgateway.networkPolicy.apiVersion" . }}
kind: NetworkPolicy
metadata:
labels:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 4 }}
- {{- if .Values.pushgateway.networkPolicy.customSelectors }}
+ {{- if .Values.networkPolicy.customSelectors }}
name: ingress-allow-customselector-{{ template "prometheus-pushgateway.name" . }}
- {{- else if .Values.pushgateway.networkPolicy.allowAll }}
+ {{- else if .Values.networkPolicy.allowAll }}
name: ingress-allow-all-{{ template "prometheus-pushgateway.name" . }}
{{- else -}}
{{- fail "One of `allowAll` or `customSelectors` must be specified." }}
@@ -32,8 +32,8 @@ spec:
{{- include "prometheus-pushgateway.selectorLabels" . | nindent 6 }}
ingress:
- ports:
- - port: {{ .Values.pushgateway.service.targetPort }}
- {{- with .Values.pushgateway.networkPolicy.customSelectors }}
+ - port: {{ .Values.service.targetPort }}
+ {{- with .Values.networkPolicy.customSelectors }}
from:
{{- toYaml . | nindent 8 }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pdb.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pdb.yaml
index 00ed4cde..efb88d76 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pdb.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pdb.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.podDisruptionBudget }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.podDisruptionBudget }}
apiVersion: {{ include "prometheus-pushgateway.pdb.apiVersion" . }}
kind: PodDisruptionBudget
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pushgateway-pvc.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pvc.yaml
similarity index 66%
rename from deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pushgateway-pvc.yaml
rename to deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pvc.yaml
index 92f0e3e2..cd97aef7 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pushgateway-pvc.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/pvc.yaml
@@ -1,3 +1,4 @@
+{{- if and (not .Values.runAsStatefulSet) .Values.persistentVolume.enabled (not .Values.persistentVolume.existingClaim) }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,31 +14,30 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and (not .Values.runAsStatefulSet) .Values.pushgateway.persistentVolume.enabled (not .Values.persistentVolume.existingClaim) }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
- {{- with .Values.pushgateway.persistentVolume.annotations }}
+ {{- with .Values.persistentVolume.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 4 }}
- {{- with .Values.pushgateway.persistentVolumeLabels }}
+ {{- with .Values.persistentVolumeLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
name: {{ include "prometheus-pushgateway.fullname" . }}
spec:
accessModes:
- {{- toYaml .Values.pushgateway.persistentVolume.accessModes | nindent 4 }}
- {{- if .Values.pushgateway.persistentVolume.storageClass }}
- {{- if (eq "-" .Values.pushgateway.persistentVolume.storageClass) }}
+ {{- toYaml .Values.persistentVolume.accessModes | nindent 4 }}
+ {{- if .Values.persistentVolume.storageClass }}
+ {{- if (eq "-" .Values.persistentVolume.storageClass) }}
storageClassName: ""
{{- else }}
- storageClassName: "{{ .Values.pushgateway.persistentVolume.storageClass }}"
+ storageClassName: "{{ .Values.persistentVolume.storageClass }}"
{{- end }}
{{- end }}
resources:
requests:
- storage: "{{ .Values.pushgateway.persistentVolume.size }}"
+ storage: "{{ .Values.persistentVolume.size }}"
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/service.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/service.yaml
index a676c67a..a90d7340 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/service.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/service.yaml
@@ -1,3 +1,4 @@
+{{- $stsNoHeadlessSvcTypes := list "LoadBalancer" "NodePort" -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,41 +14,40 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- $stsNoHeadlessSvcTypes := list "LoadBalancer" "NodePort" -}}
apiVersion: v1
kind: Service
metadata:
- {{- with .Values.pushgateway.serviceAnnotations }}
+ {{- with .Values.serviceAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 4 }}
- {{- with .Values.pushgateway.serviceLabels }}
+ {{- with .Values.serviceLables }}
{{- toYaml . | nindent 4 }}
{{- end }}
name: {{ include "prometheus-pushgateway.fullname" . }}
spec:
- {{- if .Values.pushgateway.service.clusterIP }}
- clusterIP: {{ .Values.pushgateway.service.clusterIP }}
- {{ else if and .Values.pushgateway.runAsStatefulSet (not (has .Values.pushgateway.service.type $stsNoHeadlessSvcTypes)) }}
+ {{- if .Values.service.clusterIP }}
+ clusterIP: {{ .Values.service.clusterIP }}
+ {{ else if and .Values.runAsStatefulSet (not (has .Values.service.type $stsNoHeadlessSvcTypes)) }}
clusterIP: None # Headless service
{{- end }}
- type: {{ .Values.pushgateway.service.type }}
- {{- with .Values.pushgateway.service.loadBalancerIP }}
+ type: {{ .Values.service.type }}
+ {{- with .Values.service.loadBalancerIP }}
loadBalancerIP: {{ . }}
{{- end }}
- {{- if .Values.pushgateway.service.loadBalancerSourceRanges }}
+ {{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
- {{- range $cidr := .Values.pushgateway.service.loadBalancerSourceRanges }}
+ {{- range $cidr := .Values.service.loadBalancerSourceRanges }}
- {{ $cidr }}
{{- end }}
{{- end }}
ports:
- - port: {{ .Values.pushgateway.service.port }}
- targetPort: {{ .Values.pushgateway.service.targetPort }}
- {{- if and (eq .Values.pushgateway.service.type "NodePort") .Values.pushgateway.service.nodePort }}
- nodePort: {{ .Values.pushgateway.service.nodePort }}
+ - port: {{ .Values.service.port }}
+ targetPort: {{ .Values.service.targetPort }}
+ {{- if and (eq .Values.service.type "NodePort") .Values.service.nodePort }}
+ nodePort: {{ .Values.service.nodePort }}
{{- end }}
protocol: TCP
name: http
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/serviceaccount.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/serviceaccount.yaml
index 834a19dd..ac2f5979 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/serviceaccount.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/serviceaccount.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.serviceAccount.create }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/statefulset.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/statefulset.yaml
index 42a9d689..0a20c751 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/statefulset.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/templates/statefulset.yaml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.pushgateway.runAsStatefulSet }}
+{{- if .Values.runAsStatefulSet }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
@@ -21,28 +21,28 @@ metadata:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 4 }}
name: {{ include "prometheus-pushgateway.fullname" . }}
spec:
- replicas: {{ .Values.pushgateway.replicaCount }}
+ replicas: {{ .Values.replicaCount }}
serviceName: {{ include "prometheus-pushgateway.fullname" . }}
selector:
matchLabels:
{{- include "prometheus-pushgateway.selectorLabels" . | nindent 6 }}
template:
metadata:
- {{- with .Values.pushgateway.podAnnotations }}
+ {{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "prometheus-pushgateway.defaultLabels" . | nindent 8 }}
- {{- with .Values.pushgateway.podLabels }}
+ {{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- include "prometheus-pushgateway.podSpec" . | nindent 6 }}
- {{- if .Values.pushgateway.persistentVolume.enabled }}
+ {{- if .Values.persistentVolume.enabled }}
volumeClaimTemplates:
- metadata:
- {{- with .Values.pushgateway.persistentVolume.annotations }}
+ {{- with .Values.persistentVolume.annotations }}
annotations:
{{- toYaml . | nindent 10 }}
{{- end }}
@@ -51,16 +51,16 @@ spec:
name: storage-volume
spec:
accessModes:
- {{ toYaml .Values.pushgateway.persistentVolume.accessModes }}
- {{- if .Values.pushgateway.persistentVolume.storageClass }}
- {{- if (eq "-" .Values.pushgateway.persistentVolume.storageClass) }}
+ {{ toYaml .Values.persistentVolume.accessModes }}
+ {{- if .Values.persistentVolume.storageClass }}
+ {{- if (eq "-" .Values.persistentVolume.storageClass) }}
storageClassName: ""
{{- else }}
- storageClassName: "{{ .Values.pushgateway.persistentVolume.storageClass }}"
+ storageClassName: "{{ .Values.persistentVolume.storageClass }}"
{{- end }}
{{- end }}
resources:
requests:
- storage: "{{ .Values.pushgateway.persistentVolume.size }}"
+ storage: "{{ .Values.persistentVolume.size }}"
{{- end }}
{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/values.yaml b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/values.yaml
index 88fe5e72..56ebb9b7 100644
--- a/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/values.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/charts/pushgateway/values.yaml
@@ -13,14 +13,210 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-rbac:
+# Default values for prometheus-pushgateway.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+# Provide a name
+name: pushgateway
+# Provide a name in place of prometheus-pushgateway for `app:` labels
+nameOverride: ""
+
+# Provide a name to substitute for the full names of resources
+fullnameOverride: ""
+
+image:
+ repository: prom/pushgateway
+ # if not set appVersion field from Chart.yaml is used
+ tag: ""
+ pullPolicy: IfNotPresent
+
+# Optional pod imagePullSecrets
+imagePullSecrets: []
+
+service:
+ type: ClusterIP
+ port: 9091
+ targetPort: 9091
+ # nodePort: 32100
+
+ # Optional - Can be used for headless if value is "None"
+ clusterIP: ""
+
+ loadBalancerIP: ""
+ loadBalancerSourceRanges: []
+
+# Optional pod annotations
+podAnnotations: {}
+
+# Optional pod labels
+podLabels: {}
+
+# Optional service annotations
+serviceAnnotations: {}
+
+# Optional service labels
+serviceLabels: {}
+
+# Optional serviceAccount labels
+serviceAccountLabels: {}
+
+# Optional persistentVolume labels
+persistentVolumeLabels: {}
+
+# Optional additional environment variables
+extraVars: []
+
+## Additional pushgateway container arguments
+##
+## example:
+## extraArgs:
+## - --persistence.file=/data/pushgateway.data
+## - --persistence.interval=5m
+extraArgs: []
+
+## Additional InitContainers to initialize the pod
+##
+extraInitContainers: []
+
+# Optional additional containers (sidecar)
+extraContainers: []
+ # - name: oAuth2-proxy
+ # args:
+ # - -https-address=:9092
+ # - -upstream=http://localhost:9091
+ # - -skip-auth-regex=^/metrics
+ # - -openshift-delegate-urls={"/":{"group":"monitoring.coreos.com","resource":"prometheuses","verb":"get"}}
+ # image: openshift/oauth-proxy:v1.1.0
+ # ports:
+ # - containerPort: 9092
+ # name: proxy
+ # resources:
+ # limits:
+ # memory: 16Mi
+ # requests:
+ # memory: 4Mi
+ # cpu: 20m
+ # volumeMounts:
+ # - mountPath: /etc/prometheus/secrets/pushgateway-tls
+ # name: secret-pushgateway-tls
+
+resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 200m
+ # memory: 50Mi
+ # requests:
+ # cpu: 100m
+ # memory: 30Mi
+
+liveness:
+ enabled: true
+ probe:
+ httpGet:
+ path: /-/ready
+ port: 9091
+ initialDelaySeconds: 10
+ timeoutSeconds: 10
+
+readiness:
+ enabled: true
+ probe:
+ httpGet:
+ path: /-/ready
+ port: 9091
+ initialDelaySeconds: 10
+ timeoutSeconds: 10
+
+serviceAccount:
+ # Specifies whether a ServiceAccount should be created
create: true
+ # The name of the ServiceAccount to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name:
-podSecurityPolicy:
+## Configure ingress resource that allow you to access the
+## pushgateway installation. Set up the URL
+## ref: http://kubernetes.io/docs/user-guide/ingress/
+##
+ingress:
+ ## Enable Ingress.
+ ##
enabled: false
+ # AWS ALB requires path of /*
+ className: ""
+ path: /
+ pathType: ImplementationSpecific
+
+ ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
+ extraPaths: []
+ # - path: /*
+ # backend:
+ # serviceName: ssl-redirect
+ # servicePort: use-annotation
+
+ ## Annotations.
+ ##
+ # annotations:
+ # kubernetes.io/ingress.class: nginx
+ # kubernetes.io/tls-acme: 'true'
-imagePullSecrets:
-# - name: "image-pull-secret"
+ ## Hostnames.
+ ## Must be provided if Ingress is enabled.
+ ##
+ # hosts:
+ # - pushgateway.domain.com
+
+ ## TLS configuration.
+ ## Secrets must be manually created in the namespace.
+ ##
+ # tls:
+ # - secretName: pushgateway-tls
+ # hosts:
+ # - pushgateway.domain.com
+
+tolerations: {}
+ # - effect: NoSchedule
+ # operator: Exists
+
+## Node labels for pushgateway pod assignment
+## Ref: https://kubernetes.io/docs/user-guide/node-selection/
+##
+nodeSelector: {}
+
+replicaCount: 1
+
+## When running more than one replica alongside with persistence, different volumes are needed
+## per replica, since sharing a `persistence.file` across replicas does not keep metrics synced.
+## For this purpose, you can enable the `runAsStatefulSet` to deploy the pushgateway as a
+## StatefulSet instead of as a Deployment.
+runAsStatefulSet: false
+
+## Security context to be added to push-gateway pods
+##
+securityContext:
+ fsGroup: 65534
+ runAsUser: 65534
+ runAsNonRoot: true
+
+## Security context to be added to push-gateway containers
+## Having a separate variable as securityContext differs for pods and containers.
+containerSecurityContext: {}
+# allowPrivilegeEscalation: false
+# readOnlyRootFilesystem: true
+# runAsUser: 65534
+# runAsNonRoot: true
+
+## Affinity for pod assignment
+## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+affinity: {}
+
+## Topology spread constraints for pods
+## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
+topologySpreadConstraints: []
# Enable this if you're using https://github.com/coreos/prometheus-operator
serviceMonitor:
@@ -66,271 +262,78 @@ serviceMonitor:
# replacement: $1
# action: replace
-liveness:
- enabled: true
- probe:
- httpGet:
- path: /-/ready
- port: 9091
- initialDelaySeconds: 10
- timeoutSeconds: 10
-
-readiness:
- enabled: true
- probe:
- httpGet:
- path: /-/ready
- port: 9091
- initialDelaySeconds: 10
- timeoutSeconds: 10
-
-## Define serviceAccount names for components. Defaults to component's fully qualified name.
-##
-serviceAccount:
- create: true
- name:
- annotations: {}
+# The values to set in the PodDisruptionBudget spec (minAvailable/maxUnavailable)
+# If not set then a PodDisruptionBudget will not be created
+podDisruptionBudget: {}
-## applications
-pushgateway:
- ## If false, pushgateway will not be installed
- ##
- enabled: true
+priorityClassName:
- ## Use an alternate scheduler, e.g. "stork".
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- # schedulerName:
+# Deployment Strategy type
+strategy:
+ type: Recreate
- ## pushgateway container name
+persistentVolume:
+ ## If true, pushgateway will create/use a Persistent Volume Claim
+ ## If false, use emptyDir
##
- name: pushgateway
-
- ## pushgateway container image
- ##
- image:
- repository: prom/pushgateway
- tag: v1.4.2
- pullPolicy: IfNotPresent
-
- ## pushgateway priorityClassName
- ##
- priorityClassName: ""
+ enabled: false
- ## Additional pushgateway container arguments
+ ## pushgateway data Persistent Volume access modes
+ ## Must match those of existing PV or dynamic provisioner
+ ## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
- ## for example: persistence.file: /data/pushgateway.data
- extraArgs: {}
+ accessModes:
+ - ReadWriteOnce
- ## Additional InitContainers to initialize the pod
- ##
- extraInitContainers: []
-
- ingress:
- ## If true, pushgateway Ingress will be created
- ##
- enabled: false
-
- # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
- # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
- # ingressClassName: nginx
-
- ## pushgateway Ingress annotations
- ##
- annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: 'true'
-
- ## pushgateway Ingress hostnames with optional path
- ## Must be provided if Ingress is enabled
- ##
- hosts: []
- # - pushgateway.domain.com
- # - domain.com/pushgateway
-
- path: /
-
- # pathType is only for k8s >= 1.18
- pathType: Prefix
-
- ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
- extraPaths: []
- # - path: /*
- # backend:
- # serviceName: ssl-redirect
- # servicePort: use-annotation
-
- ## pushgateway Ingress TLS configuration
- ## Secrets must be manually created in the namespace
- ##
- tls: []
- # - secretName: prometheus-alerts-tls
- # hosts:
- # - pushgateway.domain.com
-
- ## Node tolerations for pushgateway scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+ ## pushgateway data Persistent Volume Claim annotations
##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
- ## Node labels for pushgateway pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
+ annotations: {}
- ## Annotations to be added to pushgateway pods
- ##
- podAnnotations: {}
+ ## pushgateway data Persistent Volume existing claim name
+ ## Requires pushgateway.persistentVolume.enabled: true
+ ## If defined, PVC must be created manually before volume will be bound
+ existingClaim: ""
- ## Labels to be added to pushgateway pods
+ ## pushgateway data Persistent Volume mount root path
##
- podLabels: {}
+ mountPath: /data
- ## Specify if a Pod Security Policy for node-exporter must be created
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
+ ## pushgateway data Persistent Volume size
##
- podSecurityPolicy:
- annotations: {}
- ## Specify pod annotations
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
- ##
- # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
- # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
-
- replicaCount: 1
-
- ## Annotations to be added to deployment
+ size: 2Gi
+
+ ## pushgateway data Persistent Volume Storage Class
+ ## If defined, storageClassName: <storageClass>
+ ## If set to "-", storageClassName: "", which disables dynamic provisioning
+ ## If undefined (the default) or set to null, no storageClassName spec is
+ ## set, choosing the default provisioner. (gp2 on AWS, standard on
+ ## GKE, AWS & OpenStack)
##
- deploymentAnnotations: {}
+ # storageClass: "-"
- ## PodDisruptionBudget settings
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
- ##
- podDisruptionBudget:
- enabled: false
- maxUnavailable: 1
-
- ## pushgateway resource requests and limits
- ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- # limits:
- # cpu: 10m
- # memory: 32Mi
- # requests:
- # cpu: 10m
- # memory: 32Mi
-
- ## Vertical Pod Autoscaler config
- ## Ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
- verticalAutoscaler:
- ## If true a VPA object will be created for the controller
- enabled: false
- # updateMode: "Auto"
- # containerPolicies:
- # - containerName: 'prometheus-pushgateway'
-
- # Custom DNS configuration to be added to push-gateway pods
- dnsConfig: {}
- # nameservers:
- # - 1.2.3.4
- # searches:
- # - ns1.svc.cluster-domain.example
- # - my.dns.search.suffix
- # options:
- # - name: ndots
- # value: "2"
- # - name: edns0
-
- ## Security context to be added to push-gateway pods
+ ## Subdirectory of pushgateway data Persistent Volume to mount
+ ## Useful if the volume's root directory is not empty
##
- securityContext:
- runAsUser: 65534
- runAsNonRoot: true
-
- service:
- annotations:
- prometheus.io/probe: pushgateway
- labels: {}
- clusterIP: ""
-
- ## List of IP addresses at which the pushgateway service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
-
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 9091
- type: ClusterIP
-
- ## pushgateway Deployment Strategy type
- # strategy:
- # type: Recreate
-
- persistentVolume:
- ## If true, pushgateway will create/use a Persistent Volume Claim
- ##
- enabled: false
-
- ## pushgateway data Persistent Volume access modes
- ## Must match those of existing PV or dynamic provisioner
- ## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- accessModes:
- - ReadWriteOnce
-
- ## pushgateway data Persistent Volume Claim annotations
- ##
- annotations: {}
-
- ## pushgateway data Persistent Volume existing claim name
- ## Requires pushgateway.persistentVolume.enabled: true
- ## If defined, PVC must be created manually before volume will be bound
- existingClaim: ""
-
- ## pushgateway data Persistent Volume mount root path
- ##
- mountPath: /data
-
- ## pushgateway data Persistent Volume size
- ##
- size: 2Gi
-
- ## pushgateway data Persistent Volume Storage Class
- ## If defined, storageClassName: <storageClass>
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
-
- ## pushgateway data Persistent Volume Binding Mode
- ## If defined, volumeBindingMode: <volumeBindingMode>
- ## If undefined (the default) or set to null, no volumeBindingMode spec is
- ## set, choosing the default mode.
- ##
- # volumeBindingMode: ""
-
- ## Subdirectory of pushgateway data Persistent Volume to mount
- ## Useful if the volume's root directory is not empty
- ##
- subPath: ""
-
- networkPolicy: {}
- # allowAll: true
- # customSelectors:
- # - namespaceSelector:
- # matchLabels:
- # type: admin
- # - podSelector:
- # matchLabels:
- # app: myapp
\ No newline at end of file
+ subPath: ""
+
+extraVolumes: []
+ # - name: extra
+ # emptyDir: {}
+extraVolumeMounts: []
+ # - name: extra
+ # mountPath: /usr/share/extras
+ # readOnly: true
+
+# Configuration for clusters with restrictive network policies in place:
+# - allowAll allows access to the PushGateway from any namespace
+# - customSelector is a list of pod/namespaceSelectors to allow access from
+# These options are mutually exclusive and the latter will take precedence.
+networkPolicy: {}
+ # allowAll: true
+ # customSelectors:
+ # - namespaceSelector:
+ # matchLabels:
+ # type: admin
+ # - podSelector:
+ # matchLabels:
+ # app: myapp
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/_charts.tpl b/deploy/charts/admin-stack/charts/prometheus/templates/_charts.tpl
index 87f041a5..00645db7 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/_charts.tpl
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/_charts.tpl
@@ -1,20 +1,3 @@
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "prometheus.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
@@ -30,6 +13,48 @@ Create chart name and version as used by the chart label.
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+{{/*
+Create unified labels for prometheus components
+*/}}
+{{- define "prometheus.common.matchLabels" -}}
+app: {{ template "prometheus.name" . }}
+release: {{ .Release.Name }}
+{{- end -}}
+
+{{- define "prometheus.common.metaLabels" -}}
+chart: {{ template "prometheus.chart" . }}
+heritage: {{ .Release.Service }}
+{{- end -}}
+
+{{- define "prometheus.alertmanager.labels" -}}
+{{ include "prometheus.alertmanager.matchLabels" . }}
+{{ include "prometheus.common.metaLabels" . }}
+{{- end -}}
+
+{{- define "prometheus.alertmanager.matchLabels" -}}
+component: {{ .Values.alertmanager.name | quote }}
+{{ include "prometheus.common.matchLabels" . }}
+{{- end -}}
+
+{{- define "prometheus.nodeExporter.labels" -}}
+{{ include "prometheus.nodeExporter.matchLabels" . }}
+{{ include "prometheus.common.metaLabels" . }}
+{{- end -}}
+
+{{- define "prometheus.nodeExporter.matchLabels" -}}
+component: {{ .Values.nodeExporter.name | quote }}
+{{ include "prometheus.common.matchLabels" . }}
+{{- end -}}
+
+{{- define "prometheus.pushgateway.labels" -}}
+{{ include "prometheus.pushgateway.matchLabels" . }}
+{{ include "prometheus.common.metaLabels" . }}
+{{- end -}}
+
+{{- define "prometheus.pushgateway.matchLabels" -}}
+component: {{ .Values.pushgateway.name | quote }}
+{{ include "prometheus.common.matchLabels" . }}
+{{- end -}}
{{- define "prometheus.server.labels" -}}
{{ include "prometheus.server.matchLabels" . }}
@@ -42,26 +67,54 @@ component: {{ .Values.server.name | quote }}
{{- end -}}
{{/*
-Create unified labels for prometheus components
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
-{{- define "prometheus.common.matchLabels" -}}
-app: {{ template "prometheus.name" . }}
-release: {{ .Release.Name }}
+{{- define "prometheus.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
{{- end -}}
-{{- define "prometheus.common.metaLabels" -}}
-chart: {{ template "prometheus.chart" . }}
-heritage: {{ .Release.Service }}
+{{/*
+Create a fully qualified alertmanager name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+*/}}
+
+{{- define "prometheus.alertmanager.fullname" -}}
+{{- if .Values.alertmanager.fullnameOverride -}}
+{{- .Values.alertmanager.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- printf "%s-%s" .Release.Name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s-%s" .Release.Name $name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
{{- end -}}
{{/*
-Define the prometheus.namespace template if set with forceNamespace or .Release.Namespace is set
+Create a fully qualified node-exporter name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
-{{- define "prometheus.namespace" -}}
-{{- if .Values.forceNamespace -}}
-{{ printf "namespace: %s" .Values.forceNamespace }}
+{{- define "prometheus.nodeExporter.fullname" -}}
+{{- if .Values.nodeExporter.fullnameOverride -}}
+{{- .Values.nodeExporter.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
-{{ printf "namespace: %s" .Release.Namespace }}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- printf "%s-%s" .Release.Name .Values.nodeExporter.name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s-%s" .Release.Name $name .Values.nodeExporter.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
{{- end -}}
{{- end -}}
@@ -82,6 +135,135 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- end -}}
{{- end -}}
+{{/*
+Create a fully qualified pushgateway name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+*/}}
+{{- define "prometheus.pushgateway.fullname" -}}
+{{- if .Values.pushgateway.fullnameOverride -}}
+{{- .Values.pushgateway.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- printf "%s-%s" .Release.Name .Values.pushgateway.name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s-%s" .Release.Name $name .Values.pushgateway.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Get KubeVersion removing pre-release information.
+*/}}
+{{- define "prometheus.kubeVersion" -}}
+ {{- default .Capabilities.KubeVersion.Version (regexFind "v[0-9]+\\.[0-9]+\\.[0-9]+" .Capabilities.KubeVersion.Version) -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for deployment.
+*/}}
+{{- define "prometheus.deployment.apiVersion" -}}
+{{- print "apps/v1" -}}
+{{- end -}}
+{{/*
+Return the appropriate apiVersion for daemonset.
+*/}}
+{{- define "prometheus.daemonset.apiVersion" -}}
+{{- print "apps/v1" -}}
+{{- end -}}
+{{/*
+Return the appropriate apiVersion for networkpolicy.
+*/}}
+{{- define "prometheus.networkPolicy.apiVersion" -}}
+{{- print "networking.k8s.io/v1" -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for poddisruptionbudget.
+*/}}
+{{- define "prometheus.podDisruptionBudget.apiVersion" -}}
+{{- if .Capabilities.APIVersions.Has "policy/v1" }}
+{{- print "policy/v1" -}}
+{{- else -}}
+{{- print "policy/v1beta1" -}}
+{{- end -}}
+{{- end -}}
+{{/*
+Return the appropriate apiVersion for rbac.
+*/}}
+{{- define "rbac.apiVersion" -}}
+{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" }}
+{{- print "rbac.authorization.k8s.io/v1" -}}
+{{- else -}}
+{{- print "rbac.authorization.k8s.io/v1beta1" -}}
+{{- end -}}
+{{- end -}}
+{{/*
+Return the appropriate apiVersion for ingress.
+*/}}
+{{- define "ingress.apiVersion" -}}
+ {{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19.x" (include "prometheus.kubeVersion" .)) -}}
+ {{- print "networking.k8s.io/v1" -}}
+ {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
+ {{- print "networking.k8s.io/v1beta1" -}}
+ {{- else -}}
+ {{- print "extensions/v1beta1" -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Return if ingress is stable.
+*/}}
+{{- define "ingress.isStable" -}}
+ {{- eq (include "ingress.apiVersion" .) "networking.k8s.io/v1" -}}
+{{- end -}}
+
+{{/*
+Return if ingress supports ingressClassName.
+*/}}
+{{- define "ingress.supportsIngressClassName" -}}
+ {{- or (eq (include "ingress.isStable" .) "true") (and (eq (include "ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18.x" (include "prometheus.kubeVersion" .))) -}}
+{{- end -}}
+{{/*
+Return if ingress supports pathType.
+*/}}
+{{- define "ingress.supportsPathType" -}}
+ {{- or (eq (include "ingress.isStable" .) "true") (and (eq (include "ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18.x" (include "prometheus.kubeVersion" .))) -}}
+{{- end -}}
+
+{{/*
+Create the name of the service account to use for the alertmanager component
+*/}}
+{{- define "prometheus.serviceAccountName.alertmanager" -}}
+{{- if .Values.serviceAccounts.alertmanager.create -}}
+ {{ default (include "prometheus.alertmanager.fullname" .) .Values.serviceAccounts.alertmanager.name }}
+{{- else -}}
+ {{ default "default" .Values.serviceAccounts.alertmanager.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create the name of the service account to use for the nodeExporter component
+*/}}
+{{- define "prometheus.serviceAccountName.nodeExporter" -}}
+{{- if .Values.serviceAccounts.nodeExporter.create -}}
+ {{ default (include "prometheus.nodeExporter.fullname" .) .Values.serviceAccounts.nodeExporter.name }}
+{{- else -}}
+ {{ default "default" .Values.serviceAccounts.nodeExporter.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create the name of the service account to use for the pushgateway component
+*/}}
+{{- define "prometheus.serviceAccountName.pushgateway" -}}
+{{- if .Values.serviceAccounts.pushgateway.create -}}
+ {{ default (include "prometheus.pushgateway.fullname" .) .Values.serviceAccounts.pushgateway.name }}
+{{- else -}}
+ {{ default "default" .Values.serviceAccounts.pushgateway.name }}
+{{- end -}}
+{{- end -}}
+
{{/*
Create the name of the service account to use for the server component
*/}}
@@ -92,3 +274,14 @@ Create the name of the service account to use for the server component
{{ default "default" .Values.serviceAccounts.server.name }}
{{- end -}}
{{- end -}}
+
+{{/*
+Define the prometheus.namespace template if set with forceNamespace or .Release.Namespace is set
+*/}}
+{{- define "prometheus.namespace" -}}
+{{- if .Values.forceNamespace -}}
+{{ printf "namespace: %s" .Values.forceNamespace }}
+{{- else -}}
+{{ printf "namespace: %s" .Release.Namespace }}
+{{- end -}}
+{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/clusterrole.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/clusterrole.yaml
index b1c9bd24..28d43293 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/clusterrole.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/clusterrole.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.rbac.create (empty .Values.server.useExistingClusterRoleName) -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.server.enabled .Values.rbac.create (empty .Values.server.useExistingClusterRoleName) -}}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: ClusterRole
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/clusterrolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/clusterrolebinding.yaml
index ce048621..cd99204e 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/clusterrolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/clusterrolebinding.yaml
@@ -1,3 +1,4 @@
+{{- if and .Values.rbac.create (empty .Values.server.namespaces) (empty .Values.server.useExistingClusterRoleName) -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.server.enabled .Values.rbac.create (empty .Values.server.namespaces) (empty .Values.server.useExistingClusterRoleName) -}}
apiVersion: {{ template "rbac.apiVersion" . }}
kind: ClusterRoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/cm.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/configmap.yaml
similarity index 87%
rename from deploy/charts/admin-stack/charts/prometheus/templates/cm.yaml
rename to deploy/charts/admin-stack/charts/prometheus/templates/configmap.yaml
index 0e7e93b9..61444949 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/cm.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/configmap.yaml
@@ -1,3 +1,4 @@
+{{- if (empty .Values.server.configMapOverrideName) -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,16 +14,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if (empty .Values.server.configMapOverrideName) -}}
apiVersion: v1
kind: ConfigMap
metadata:
labels:
{{- include "prometheus.server.labels" . | nindent 4 }}
+ {{- with .Values.server.extraConfigmapLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
name: {{ template "prometheus.server.fullname" . }}
{{ include "prometheus.namespace" . | indent 2 }}
data:
+ allow-snippet-annotations: "false"
{{- $root := . -}}
{{- range $key, $value := .Values.ruleFiles }}
{{ $key }}: {{- toYaml $value | indent 2 }}
@@ -80,14 +83,11 @@ data:
- source_labels: [__meta_kubernetes_namespace]
regex: {{ $root.Release.Namespace }}
action: keep
- - source_labels: [__meta_kubernetes_pod_label_app]
- regex: {{ template "prometheus.name" $root }}
+ - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
+ regex: {{ $root.Release.Name }}
action: keep
- - source_labels: [__meta_kubernetes_pod_label_component]
- regex: alertmanager
- action: keep
- - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_probe]
- regex: {{ index $root.Values.alertmanager.podAnnotations "prometheus.io/probe" | default ".*" }}
+ - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
+ regex: {{ default "alertmanager" $root.Values.alertmanager.nameOverride | trunc 63 | trimSuffix "-" }}
action: keep
- source_labels: [__meta_kubernetes_pod_container_port_number]
regex: "9093"
@@ -97,4 +97,3 @@ data:
{{- end -}}
{{- end -}}
{{- end -}}
-{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/deploy.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/deployment.yaml
similarity index 90%
rename from deploy/charts/admin-stack/charts/prometheus/templates/deploy.yaml
rename to deploy/charts/admin-stack/charts/prometheus/templates/deployment.yaml
index a0c418ef..29173f9e 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/deploy.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/deployment.yaml
@@ -1,3 +1,4 @@
+{{- if not .Values.server.statefulSet.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if not .Values.server.statefulSet.enabled -}}
apiVersion: {{ template "prometheus.deployment.apiVersion" . }}
kind: Deployment
metadata:
@@ -69,8 +68,16 @@ spec:
containers:
{{- if .Values.configmapReload.prometheus.enabled }}
- name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}-{{ .Values.configmapReload.prometheus.name }}
+ {{- if .Values.configmapReload.prometheus.image.digest }}
+ image: "{{ .Values.configmapReload.prometheus.image.repository }}@{{ .Values.configmapReload.prometheus.image.digest }}"
+ {{- else }}
image: "{{ .Values.configmapReload.prometheus.image.repository }}:{{ .Values.configmapReload.prometheus.image.tag }}"
+ {{- end }}
imagePullPolicy: "{{ .Values.configmapReload.prometheus.image.pullPolicy }}"
+ {{- with .Values.configmapReload.prometheus.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
args:
- --volume-dir=/etc/config
- --webhook-url=http://127.0.0.1:9090{{ .Values.server.prefixURL }}/-/reload
@@ -80,6 +87,10 @@ spec:
{{- range .Values.configmapReload.prometheus.extraVolumeDirs }}
- --volume-dir={{ . }}
{{- end }}
+ {{- if .Values.configmapReload.prometheus.containerPort }}
+ ports:
+ - containerPort: {{ .Values.configmapReload.prometheus.containerPort }}
+ {{- end }}
resources:
{{ toYaml .Values.configmapReload.prometheus.resources | indent 12 }}
volumeMounts:
@@ -95,7 +106,11 @@ spec:
{{- end }}
- name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}
- image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}"
+ {{- if .Values.server.image.digest }}
+ image: "{{ .Values.server.image.repository }}@{{ .Values.server.image.digest }}"
+ {{- else }}
+ image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag | default .Chart.AppVersion}}"
+ {{- end }}
imagePullPolicy: "{{ .Values.server.image.pullPolicy }}"
{{- if .Values.server.env }}
env:
@@ -140,12 +155,9 @@ spec:
path: {{ .Values.server.prefixURL }}/-/ready
port: 9090
scheme: {{ .Values.server.probeScheme }}
- {{- if .Values.server.probeHeaders }}
+ {{- with .Values.server.probeHeaders }}
httpHeaders:
- {{- range .Values.server.probeHeaders}}
- - name: {{ .name }}
- value: {{ .value }}
- {{- end }}
+{{- toYaml . | nindent 14 }}
{{- end }}
{{- else }}
tcpSocket:
@@ -162,12 +174,9 @@ spec:
path: {{ .Values.server.prefixURL }}/-/healthy
port: 9090
scheme: {{ .Values.server.probeScheme }}
- {{- if .Values.server.probeHeaders }}
+ {{- with .Values.server.probeHeaders }}
httpHeaders:
- {{- range .Values.server.probeHeaders}}
- - name: {{ .name }}
- value: {{ .value }}
- {{- end }}
+{{- toYaml . | nindent 14 }}
{{- end }}
{{- else }}
tcpSocket:
@@ -229,6 +238,10 @@ spec:
{{- if .Values.server.extraVolumeMounts }}
{{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
{{- end }}
+ {{- with .Values.server.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
{{- if .Values.server.sidecarContainers }}
{{- range $name, $spec := .Values.server.sidecarContainers }}
- name: {{ $name }}
@@ -239,8 +252,10 @@ spec:
{{- end }}
{{- end }}
{{- end }}
- hostNetwork: {{ .Values.server.hostNetwork }}
- {{- if .Values.server.dnsPolicy }}
+ {{- if .Values.server.hostNetwork }}
+ hostNetwork: true
+ dnsPolicy: ClusterFirstWithHostNet
+ {{- else }}
dnsPolicy: {{ .Values.server.dnsPolicy }}
{{- end }}
{{- if .Values.imagePullSecrets }}
@@ -259,9 +274,9 @@ spec:
dnsConfig:
{{ toYaml .Values.server.dnsConfig | indent 8 }}
{{- end }}
- {{- if .Values.server.securityContext }}
+ {{- with .Values.server.securityContext }}
securityContext:
-{{ toYaml .Values.server.securityContext | indent 8 }}
+ {{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.server.tolerations }}
tolerations:
@@ -328,4 +343,3 @@ spec:
{{- end -}}
{{- end -}}
{{- end -}}
-{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/ingress.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/ingress.yaml
index 6b2dce13..f6cc37c0 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/ingress.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/ingress.yaml
@@ -13,7 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
{{- if .Values.server.ingress.enabled -}}
{{- $ingressApiIsStable := eq (include "ingress.isStable" .) "true" -}}
{{- $ingressSupportsIngressClassName := eq (include "ingress.supportsIngressClassName" .) "true" -}}
@@ -71,4 +70,3 @@ spec:
{{ toYaml .Values.server.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
-{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/networkpolicy.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/networkpolicy.yaml
index d4617657..ecf0f26f 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/networkpolicy.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/networkpolicy.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.networkPolicy.enabled }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if .Values.networkPolicy.enabled }}
apiVersion: {{ template "prometheus.networkPolicy.apiVersion" . }}
kind: NetworkPolicy
metadata:
@@ -30,4 +29,3 @@ spec:
- ports:
- port: 9090
{{- end }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/pdb.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/pdb.yaml
index ea36fa27..b0ea9ebc 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/pdb.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/pdb.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.server.podDisruptionBudget.enabled }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.podDisruptionBudget.enabled }}
-apiVersion: policy/v1beta1
+apiVersion: {{ template "prometheus.podDisruptionBudget.apiVersion" . }}
kind: PodDisruptionBudget
metadata:
name: {{ template "prometheus.server.fullname" . }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/psp.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/psp.yaml
index 16c56f48..3bc1ed19 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/psp.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/psp.yaml
@@ -13,17 +13,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.server.enabled .Values.rbac.create .Values.podSecurityPolicy.enabled }}
-apiVersion: {{ template "prometheus.podSecurityPolicy.apiVersion" . }}
+{{- if and .Values.rbac.create .Values.podSecurityPolicy.enabled }}
+{{- if .Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy" }}
+apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: {{ template "prometheus.server.fullname" . }}
labels:
{{- include "prometheus.server.labels" . | nindent 4 }}
+ {{- with .Values.server.podSecurityPolicy.annotations }}
annotations:
-{{- if .Values.server.podSecurityPolicy.annotations }}
-{{ toYaml .Values.server.podSecurityPolicy.annotations | indent 4 }}
-{{- end }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
spec:
privileged: false
allowPrivilegeEscalation: false
@@ -64,3 +65,4 @@ spec:
max: 65535
readOnlyRootFilesystem: false
{{- end }}
+{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/pvc.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/pvc.yaml
index 99ebd0e5..f6eeecb9 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/pvc.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/pvc.yaml
@@ -13,7 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
{{- if not .Values.server.statefulSet.enabled -}}
{{- if .Values.server.persistentVolume.enabled -}}
{{- if not .Values.server.persistentVolume.existingClaim -}}
@@ -48,6 +47,8 @@ spec:
selector:
{{- toYaml .Values.server.persistentVolume.selector | nindent 4 }}
{{- end -}}
+{{- if .Values.server.persistentVolume.volumeName }}
+ volumeName: "{{ .Values.server.persistentVolume.volumeName }}"
{{- end -}}
{{- end -}}
{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/rolebinding.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/rolebinding.yaml
index 0d296e46..72533619 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/rolebinding.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/rolebinding.yaml
@@ -12,9 +12,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if and .Values.server.enabled .Values.rbac.create .Values.server.useExistingClusterRoleName .Values.server.namespaces -}}
+
+{{- if and .Values.rbac.create .Values.server.useExistingClusterRoleName .Values.server.namespaces -}}
{{ range $.Values.server.namespaces -}}
----
apiVersion: {{ template "rbac.apiVersion" $ }}
kind: RoleBinding
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/service.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/service.yaml
index ca5e9700..cfb4543c 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/service.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/service.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.server.service.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
apiVersion: v1
kind: Service
metadata:
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/serviceaccount.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/serviceaccount.yaml
index 5bf636d2..730726c1 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/serviceaccount.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/serviceaccount.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.serviceAccounts.server.create }}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if .Values.serviceAccounts.server.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
@@ -25,4 +24,3 @@ metadata:
annotations:
{{ toYaml .Values.serviceAccounts.server.annotations | indent 4 }}
{{- end }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/sts.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/statefulset.yaml
similarity index 83%
rename from deploy/charts/admin-stack/charts/prometheus/templates/sts.yaml
rename to deploy/charts/admin-stack/charts/prometheus/templates/statefulset.yaml
index 7afe2992..be311fee 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/sts.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/statefulset.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.server.statefulSet.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if .Values.server.statefulSet.enabled -}}
apiVersion: apps/v1
kind: StatefulSet
metadata:
@@ -69,8 +68,16 @@ spec:
containers:
{{- if .Values.configmapReload.prometheus.enabled }}
- name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}-{{ .Values.configmapReload.prometheus.name }}
+ {{- if .Values.configmapReload.prometheus.image.digest }}
+ image: "{{ .Values.configmapReload.prometheus.image.repository }}@{{ .Values.configmapReload.prometheus.image.digest }}"
+ {{- else }}
image: "{{ .Values.configmapReload.prometheus.image.repository }}:{{ .Values.configmapReload.prometheus.image.tag }}"
+ {{- end }}
imagePullPolicy: "{{ .Values.configmapReload.prometheus.image.pullPolicy }}"
+ {{- with .Values.configmapReload.prometheus.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
args:
- --volume-dir=/etc/config
- --webhook-url=http://127.0.0.1:9090{{ .Values.server.prefixURL }}/-/reload
@@ -80,6 +87,10 @@ spec:
{{- range .Values.configmapReload.prometheus.extraVolumeDirs }}
- --volume-dir={{ . }}
{{- end }}
+ {{- if .Values.configmapReload.prometheus.containerPort }}
+ ports:
+ - containerPort: {{ .Values.configmapReload.prometheus.containerPort }}
+ {{- end }}
resources:
{{ toYaml .Values.configmapReload.prometheus.resources | indent 12 }}
volumeMounts:
@@ -95,7 +106,11 @@ spec:
{{- end }}
- name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}
- image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}"
+ {{- if .Values.server.image.digest }}
+ image: "{{ .Values.server.image.repository }}@{{ .Values.server.image.digest }}"
+ {{- else }}
+ image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag | default .Chart.AppVersion }}"
+ {{- end }}
imagePullPolicy: "{{ .Values.server.image.pullPolicy }}"
{{- if .Values.server.env }}
env:
@@ -140,6 +155,10 @@ spec:
path: {{ .Values.server.prefixURL }}/-/ready
port: 9090
scheme: {{ .Values.server.probeScheme }}
+ {{- with .Values.server.probeHeaders }}
+ httpHeaders:
+{{- toYaml . | nindent 14 }}
+ {{- end }}
{{- else }}
tcpSocket:
port: 9090
@@ -155,6 +174,10 @@ spec:
path: {{ .Values.server.prefixURL }}/-/healthy
port: 9090
scheme: {{ .Values.server.probeScheme }}
+ {{- with .Values.server.probeHeaders }}
+ httpHeaders:
+{{- toYaml . | nindent 14 }}
+ {{- end }}
{{- else }}
tcpSocket:
port: 9090
@@ -164,6 +187,28 @@ spec:
timeoutSeconds: {{ .Values.server.livenessProbeTimeout }}
failureThreshold: {{ .Values.server.livenessProbeFailureThreshold }}
successThreshold: {{ .Values.server.livenessProbeSuccessThreshold }}
+ {{- if .Values.server.startupProbe.enabled }}
+ startupProbe:
+ {{- if not .Values.server.tcpSocketProbeEnabled }}
+ httpGet:
+ path: {{ .Values.server.prefixURL }}/-/healthy
+ port: 9090
+ scheme: {{ .Values.server.probeScheme }}
+ {{- if .Values.server.probeHeaders }}
+ httpHeaders:
+ {{- range .Values.server.probeHeaders}}
+ - name: {{ .name }}
+ value: {{ .value }}
+ {{- end }}
+ {{- end }}
+ {{- else }}
+ tcpSocket:
+ port: 9090
+ {{- end }}
+ failureThreshold: {{ .Values.server.startupProbe.failureThreshold }}
+ periodSeconds: {{ .Values.server.startupProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.server.startupProbe.timeoutSeconds }}
+ {{- end }}
resources:
{{ toYaml .Values.server.resources | indent 12 }}
volumeMounts:
@@ -193,6 +238,10 @@ spec:
{{- if .Values.server.extraVolumeMounts }}
{{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
{{- end }}
+ {{- with .Values.server.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
{{- if .Values.server.sidecarContainers }}
{{- range $name, $spec := .Values.server.sidecarContainers }}
- name: {{ $name }}
@@ -223,9 +272,9 @@ spec:
dnsConfig:
{{ toYaml .Values.server.dnsConfig | indent 8 }}
{{- end }}
- {{- if .Values.server.securityContext }}
+ {{- with .Values.server.securityContext }}
securityContext:
-{{ toYaml .Values.server.securityContext | indent 8 }}
+ {{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.server.tolerations }}
tolerations:
@@ -287,6 +336,10 @@ spec:
annotations:
{{ toYaml .Values.server.persistentVolume.annotations | indent 10 }}
{{- end }}
+ {{- if .Values.server.persistentVolume.labels }}
+ labels:
+{{ toYaml .Values.server.persistentVolume.labels | indent 10 }}
+ {{- end }}
spec:
accessModes:
{{ toYaml .Values.server.persistentVolume.accessModes | indent 10 }}
@@ -301,7 +354,7 @@ spec:
{{- end }}
{{- end }}
{{- else }}
- - name: storage-volume
+ - name: storage-volume
emptyDir:
{{- if .Values.server.emptyDir.sizeLimit }}
sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
@@ -310,4 +363,3 @@ spec:
{{- end -}}
{{- end }}
{{- end }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/svc-headless.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/svc-headless.yaml
index 340e74c9..b5ea1cb5 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/svc-headless.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/svc-headless.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.server.statefulSet.enabled -}}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -13,8 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
-{{- if .Values.server.statefulSet.enabled -}}
apiVersion: v1
kind: Service
metadata:
@@ -49,4 +48,3 @@ spec:
selector:
{{- include "prometheus.server.matchLabels" . | nindent 4 }}
{{- end -}}
-{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/templates/verticalpodautoscaler.yaml b/deploy/charts/admin-stack/charts/prometheus/templates/verticalpodautoscaler.yaml
index 07e77b0c..9a5f7b2a 100644
--- a/deploy/charts/admin-stack/charts/prometheus/templates/verticalpodautoscaler.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/templates/verticalpodautoscaler.yaml
@@ -13,9 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-{{- if .Values.server.enabled -}}
{{- if .Values.server.verticalAutoscaler.enabled -}}
+{{- if .Capabilities.APIVersions.Has "autoscaling.k8s.io/v1/VerticalPodAutoscaler" }}
+apiVersion: autoscaling.k8s.io/v1
+{{- else }}
apiVersion: autoscaling.k8s.io/v1beta2
+{{- end }}
kind: VerticalPodAutoscaler
metadata:
labels:
@@ -35,5 +38,4 @@ spec:
updateMode: {{ .Values.server.verticalAutoscaler.updateMode | default "Off" | quote }}
resourcePolicy:
containerPolicies: {{ .Values.server.verticalAutoscaler.containerPolicies | default list | toYaml | trim | nindent 4 }}
-{{- end -}} {{/* if .Values.server.verticalAutoscaler.enabled */}}
-{{- end -}} {{/* .Values.server.enabled */}}
+{{- end -}}
diff --git a/deploy/charts/admin-stack/charts/prometheus/values.yaml b/deploy/charts/admin-stack/charts/prometheus/values.yaml
index c464efcf..dfa58ec1 100644
--- a/deploy/charts/admin-stack/charts/prometheus/values.yaml
+++ b/deploy/charts/admin-stack/charts/prometheus/values.yaml
@@ -19,7 +19,7 @@ rbac:
podSecurityPolicy:
enabled: false
-imagePullSecrets:
+imagePullSecrets: []
# - name: "image-pull-secret"
## Define serviceAccount names for components. Defaults to component's fully qualified name.
@@ -27,8 +27,9 @@ imagePullSecrets:
serviceAccounts:
server:
create: true
- name:
+ name: ""
annotations: {}
+
## Monitors ConfigMap changes and POSTs to a URL
## Ref: https://github.com/jimmidyson/configmap-reload
##
@@ -47,45 +48,11 @@ configmapReload:
image:
repository: jimmidyson/configmap-reload
tag: v0.8.0
+ # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
+ digest: ""
pullPolicy: IfNotPresent
- ## Additional configmap-reload container arguments
- ##
- extraArgs: {}
- ## Additional configmap-reload volume directories
- ##
- extraVolumeDirs: []
-
-
- ## Additional configmap-reload mounts
- ##
- extraConfigmapMounts: []
- # - name: prometheus-alerts
- # mountPath: /etc/alerts.d
- # subPath: ""
- # configMap: prometheus-alerts
- # readOnly: true
-
-
- ## configmap-reload resource requests and limits
- ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- alertmanager:
- ## If false, the configmap-reload container will not be deployed
- ##
- enabled: true
-
- ## configmap-reload container name
- ##
- name: configmap-reload
-
- ## configmap-reload container image
- ##
- image:
- repository: jimmidyson/configmap-reload
- tag: v0.5.0
- pullPolicy: IfNotPresent
+ # containerPort: 9533
## Additional configmap-reload container arguments
##
@@ -102,183 +69,20 @@ configmapReload:
# mountPath: /etc/alerts.d
# subPath: ""
# configMap: prometheus-alerts
- # readOnly: true
+ # readOnly: true
+ ## Security context to be added to configmap-reload container
+ containerSecurityContext: {}
## configmap-reload resource requests and limits
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources: {}
-kubeStateMetrics:
- ## If false, kube-state-metrics sub-chart will not be installed
- ##
- enabled: true
-
-## kube-state-metrics sub-chart configurable values
-## Please see https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics
-##
-# kube-state-metrics:
-
-nodeExporter:
- ## If false, node-exporter will not be installed
- ##
- enabled: true
-
- ## If true, node-exporter pods share the host network namespace
- ##
- hostNetwork: true
-
- ## If true, node-exporter pods share the host PID namespace
- ##
- hostPID: true
-
- ## If true, node-exporter pods mounts host / at /host/root
- ##
- hostRootfs: true
-
- ## node-exporter container name
- ##
- name: node-exporter
-
- ## node-exporter container image
- ##
- image:
- repository: quay.io/prometheus/node-exporter
- tag: v1.3.0
- pullPolicy: IfNotPresent
-
- ## Specify if a Pod Security Policy for node-exporter must be created
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
- ##
- podSecurityPolicy:
- annotations: {}
- ## Specify pod annotations
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
- ##
- # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
- # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
-
- ## node-exporter priorityClassName
- ##
- priorityClassName: ""
-
- ## Custom Update Strategy
- ##
- updateStrategy:
- type: RollingUpdate
-
- ## Additional node-exporter container arguments
- ##
- extraArgs: {}
-
- ## Additional InitContainers to initialize the pod
- ##
- extraInitContainers: []
-
- ## Additional node-exporter hostPath mounts
- ##
- extraHostPathMounts: []
- # - name: textfile-dir
- # mountPath: /srv/txt_collector
- # hostPath: /var/lib/node-exporter
- # readOnly: true
- # mountPropagation: HostToContainer
-
- extraConfigmapMounts: []
- # - name: certs-configmap
- # mountPath: /prometheus
- # configMap: certs-configmap
- # readOnly: true
-
- ## Node tolerations for node-exporter scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
- ## Node labels for node-exporter pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
-
- ## Annotations to be added to node-exporter pods
- ##
- podAnnotations: {}
-
- ## Labels to be added to node-exporter pods
- ##
- pod:
- labels: {}
-
- ## PodDisruptionBudget settings
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
- ##
- podDisruptionBudget:
- enabled: false
- maxUnavailable: 1
-
- ## node-exporter resource limits & requests
- ## Ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- # limits:
- # cpu: 200m
- # memory: 50Mi
- # requests:
- # cpu: 100m
- # memory: 30Mi
-
- # Custom DNS configuration to be added to node-exporter pods
- dnsConfig: {}
- # nameservers:
- # - 1.2.3.4
- # searches:
- # - ns1.svc.cluster-domain.example
- # - my.dns.search.suffix
- # options:
- # - name: ndots
- # value: "2"
- # - name: edns0
-
- ## Security context to be added to node-exporter pods
- ##
- securityContext:
- fsGroup: 65534
- runAsGroup: 65534
- runAsNonRoot: true
- runAsUser: 65534
-
- service:
- annotations:
- prometheus.io/scrape: "true"
- labels: {}
-
- # Exposed as a headless service:
- # https://kubernetes.io/docs/concepts/services-networking/service/#headless-services
- clusterIP: None
-
- ## List of IP addresses at which the node-exporter service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
-
- hostPort: 9100
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 9100
- type: ClusterIP
-
server:
## Prometheus server container name
##
- enabled: true
+ name: server
## Use a ClusterRole (and ClusterRoleBinding)
## - If set to false - we define a RoleBinding in the defined namespaces ONLY
@@ -294,8 +98,6 @@ server:
# namespaces:
# - yournamespace
- name: server
-
# sidecarContainers - add more containers to prometheus server
# Key/Value where Key is the sidecar `- name: <Key>`
# Example:
@@ -320,7 +122,10 @@ server:
##
image:
repository: quay.io/prometheus/prometheus
- tag: v2.34.0
+ # if not set appVersion field from Chart.yaml is used
+ tag: ""
+ # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
+ digest: ""
pullPolicy: IfNotPresent
## prometheus server priorityClassName
@@ -404,6 +209,8 @@ server:
##
## Useful for providing HTTP Basic Auth to healthchecks
probeHeaders: []
+ # - name: "Authorization"
+ # value: "Bearer ABCDEabcde12345"
## Additional Prometheus server container arguments
##
@@ -428,14 +235,14 @@ server:
# mountPath: /etc/kubernetes/certs
# subPath: ""
# hostPath: /etc/kubernetes/certs
- # readOnly: true
+ # readOnly: true
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /prometheus
# subPath: ""
# configMap: certs-configmap
- # readOnly: true
+ # readOnly: true
## Additional Prometheus server Secret mounts
# Defines additional mounts with secrets. Secrets must be manually created in the namespace.
@@ -444,7 +251,7 @@ server:
# mountPath: /etc/secrets
# subPath: ""
# secretName: prom-secret-files
- # readOnly: true
+ # readOnly: true
## ConfigMap override where fullname is {{.Release.Name}}-{{.Values.server.configMapOverrideName}}
## Defining configMapOverrideName will cause templates/server-configmap.yaml
@@ -452,6 +259,9 @@ server:
##
configMapOverrideName: ""
+ ## Extra labels for Prometheus server ConfigMap (ConfigMap that holds serverFiles)
+ extraConfigmapLabels: {}
+
ingress:
## If true, Prometheus server Ingress will be created
##
@@ -499,8 +309,8 @@ server:
# - prometheus.domain.com
## Server Deployment Strategy type
- # strategy:
- # type: Recreate
+ strategy:
+ type: Recreate
## hostAliases allows adding entries to /etc/hosts inside the containers
hostAliases: []
@@ -515,7 +325,7 @@ server:
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
+ # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
## Node labels for Prometheus server pod assignment
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
@@ -542,7 +352,7 @@ server:
## If true, Prometheus server will create/use a Persistent Volume Claim
## If false, use emptyDir
##
- enabled: true
+ enabled: false
## Prometheus server data Persistent Volume access modes
## Must match those of existing PV or dynamic provisioner
@@ -551,6 +361,10 @@ server:
accessModes:
- ReadWriteOnce
+ ## Prometheus server data Persistent Volume labels
+ ##
+ labels: {}
+
## Prometheus server data Persistent Volume annotations
##
annotations: {}
@@ -599,6 +413,11 @@ server:
# matchExpressions:
# - { key: environment, operator: In, values: [ dev ] }
+ ## Persistent Volume Name
+ ## Useful if Persistent Volumes have been provisioned in advance and you want to use a specific one
+ ##
+ # volumeName: ""
+
emptyDir:
## Prometheus server emptyDir volume size limit
##
@@ -607,7 +426,7 @@ server:
## Annotations to be added to Prometheus server pods
##
podAnnotations: {}
- # iam.amazonaws.com/role: prometheus
+ # iam.amazonaws.com/role: prometheus
## Labels to be added to Prometheus server pods
##
@@ -629,7 +448,7 @@ server:
##
# seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
# seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
+ # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
## Use a StatefulSet if replicaCount needs to be greater than 1 (see below)
##
@@ -691,14 +510,14 @@ server:
# memory: 512Mi
# requests:
# cpu: 500m
- # memory: 512Mi
+ # memory: 512Mi
# Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
# because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
##
hostNetwork: false
- # When hostNetwork is enabled, you probably want to set this to ClusterFirstWithHostNet
+ # When hostNetwork is enabled, this will set to ClusterFirstWithHostNet automatically
dnsPolicy: ClusterFirst
# Use hostPort
@@ -722,8 +541,9 @@ server:
# - my.dns.search.suffix
# options:
# - name: ndots
- # value: "2"
+ # value: "2"
# - name: edns0
+
## Security context to be added to server pods
##
securityContext:
@@ -732,7 +552,15 @@ server:
runAsGroup: 65534
fsGroup: 65534
+ ## Security context to be added to server container
+ ##
+ containerSecurityContext: {}
+
service:
+ ## If false, no Service will be created for the Prometheus server
+ ##
+ enabled: true
+
annotations: {}
labels: {}
clusterIP: ""
@@ -746,7 +574,7 @@ server:
loadBalancerSourceRanges: []
servicePort: 80
sessionAffinity: None
- type: ClusterIP
+ type: NodePort
## Enable gRPC port on service to allow auto discovery with thanos-querier
gRPC:
@@ -769,266 +597,12 @@ server:
##
retention: "15d"
-pushgateway:
- ## If false, pushgateway will not be installed
- ##
- enabled: true
-
- ## Use an alternate scheduler, e.g. "stork".
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- # schedulerName:
-
- ## pushgateway container name
- ##
- name: pushgateway
-
- ## pushgateway container image
- ##
- image:
- repository: prom/pushgateway
- tag: v1.4.2
- pullPolicy: IfNotPresent
-
- ## pushgateway priorityClassName
- ##
- priorityClassName: ""
-
- ## Additional pushgateway container arguments
- ##
- ## for example: persistence.file: /data/pushgateway.data
- extraArgs: {}
-
- ## Additional InitContainers to initialize the pod
- ##
- extraInitContainers: []
-
- ingress:
- ## If true, pushgateway Ingress will be created
- ##
- enabled: false
-
- # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
- # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
- # ingressClassName: nginx
-
- ## pushgateway Ingress annotations
- ##
- annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: 'true'
-
- ## pushgateway Ingress hostnames with optional path
- ## Must be provided if Ingress is enabled
- ##
- hosts: []
- # - pushgateway.domain.com
- # - domain.com/pushgateway
-
- path: /
-
- # pathType is only for k8s >= 1.18
- pathType: Prefix
-
- ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
- extraPaths: []
- # - path: /*
- # backend:
- # serviceName: ssl-redirect
- # servicePort: use-annotation
-
- ## pushgateway Ingress TLS configuration
- ## Secrets must be manually created in the namespace
- ##
- tls: []
- # - secretName: prometheus-alerts-tls
- # hosts:
- # - pushgateway.domain.com
-
- ## Node tolerations for pushgateway scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
- ## Node labels for pushgateway pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
-
- ## Annotations to be added to pushgateway pods
- ##
- podAnnotations: {}
-
- ## Labels to be added to pushgateway pods
- ##
- podLabels: {}
-
- ## Specify if a Pod Security Policy for node-exporter must be created
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
- ##
- podSecurityPolicy:
- annotations: {}
- ## Specify pod annotations
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
- ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
- ##
- # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
- # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
- # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
-
- replicaCount: 1
-
- ## Annotations to be added to deployment
- ##
- deploymentAnnotations: {}
-
- ## PodDisruptionBudget settings
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
- ##
- podDisruptionBudget:
- enabled: false
- maxUnavailable: 1
-
- ## pushgateway resource requests and limits
- ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- resources: {}
- # limits:
- # cpu: 10m
- # memory: 32Mi
- # requests:
- # cpu: 10m
- # memory: 32Mi
-
- ## Vertical Pod Autoscaler config
- ## Ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
- verticalAutoscaler:
- ## If true a VPA object will be created for the controller
- enabled: false
- # updateMode: "Auto"
- # containerPolicies:
- # - containerName: 'prometheus-pushgateway'
-
- # Custom DNS configuration to be added to push-gateway pods
- dnsConfig: {}
- # nameservers:
- # - 1.2.3.4
- # searches:
- # - ns1.svc.cluster-domain.example
- # - my.dns.search.suffix
- # options:
- # - name: ndots
- # value: "2"
- # - name: edns0
-
- ## Security context to be added to push-gateway pods
- ##
- securityContext:
- runAsUser: 65534
- runAsNonRoot: true
-
- service:
- annotations:
- prometheus.io/probe: pushgateway
- labels: {}
- clusterIP: ""
-
- ## List of IP addresses at which the pushgateway service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
-
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 9091
- type: ClusterIP
-
- ## pushgateway Deployment Strategy type
- # strategy:
- # type: Recreate
-
- persistentVolume:
- ## If true, pushgateway will create/use a Persistent Volume Claim
- ##
- enabled: false
-
- ## pushgateway data Persistent Volume access modes
- ## Must match those of existing PV or dynamic provisioner
- ## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- accessModes:
- - ReadWriteOnce
-
- ## pushgateway data Persistent Volume Claim annotations
- ##
- annotations: {}
-
- ## pushgateway data Persistent Volume existing claim name
- ## Requires pushgateway.persistentVolume.enabled: true
- ## If defined, PVC must be created manually before volume will be bound
- existingClaim: ""
-
- ## pushgateway data Persistent Volume mount root path
- ##
- mountPath: /data
-
- ## pushgateway data Persistent Volume size
- ##
- size: 2Gi
-
- ## pushgateway data Persistent Volume Storage Class
- ## If defined, storageClassName: <storageClass>
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
-
- ## pushgateway data Persistent Volume Binding Mode
- ## If defined, volumeBindingMode: <volumeBindingMode>
- ## If undefined (the default) or set to null, no volumeBindingMode spec is
- ## set, choosing the default mode.
- ##
- # volumeBindingMode: ""
-
- ## Subdirectory of pushgateway data Persistent Volume to mount
- ## Useful if the volume's root directory is not empty
- ##
- subPath: ""
-
-
-## alertmanager ConfigMap entries
-##
-alertmanagerFiles:
- alertmanager.yml:
- global: {}
- # slack_api_url: ''
-
- receivers:
- - name: default-receiver
- # slack_configs:
- # - channel: '@you'
- # send_resolved: true
-
- route:
- group_wait: 10s
- group_interval: 5m
- receiver: default-receiver
- repeat_interval: 3h
-
## Prometheus server ConfigMap entries for rule files (allow prometheus labels interpolation)
ruleFiles: {}
## Prometheus server ConfigMap entries
##
serverFiles:
-
## Alerts configuration
## Ref: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
alerting_rules.yml: {}
@@ -1056,7 +630,7 @@ serverFiles:
rule_files:
- /etc/config/recording_rules.yml
- /etc/config/alerting_rules.yml
- ## Below two files are DEPRECATED will be removed from this default values file
+ ## Below two files are DEPRECATED will be removed from this default values file
- /etc/config/rules
- /etc/config/alerts
@@ -1064,7 +638,7 @@ serverFiles:
- job_name: prometheus
static_configs:
- targets:
- - localhost:9090
+ - localhost:9090
# A scrape configuration for running Prometheus on a Kubernetes cluster.
# This uses separate scrape configs for cluster components (i.e. API server, node)
@@ -1192,6 +766,12 @@ serverFiles:
target_label: __metrics_path__
replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
+ # Metric relabel configs to apply to samples before ingestion.
+ # [Metric Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs)
+ # metric_relabel_configs:
+ # - action: labeldrop
+ # regex: (kubernetes_io_hostname|failure_domain_beta_kubernetes_io_region|beta_kubernetes_io_os|beta_kubernetes_io_arch|beta_kubernetes_io_instance_type|failure_domain_beta_kubernetes_io_zone)
+
# Scrape config for service endpoints.
#
# The relabeling allows the actual service scrape endpoint to be configured
@@ -1207,6 +787,7 @@ serverFiles:
# * `prometheus.io/param_<parameter>`: If the metrics endpoint uses parameters
# then you can set any parameter
- job_name: 'kubernetes-service-endpoints'
+ honor_labels: true
kubernetes_sd_configs:
- role: endpoints
@@ -1229,7 +810,7 @@ serverFiles:
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
- regex: ([^:]+)(?::\d+)?;(\d+)
+ regex: (.+?)(?::\d+)?;(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
@@ -1261,6 +842,7 @@ serverFiles:
# * `prometheus.io/param_<parameter>`: If the metrics endpoint uses parameters
# then you can set any parameter
- job_name: 'kubernetes-service-endpoints-slow'
+ honor_labels: true
scrape_interval: 5m
scrape_timeout: 30s
@@ -1283,7 +865,7 @@ serverFiles:
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
- regex: ([^:]+)(?::\d+)?;(\d+)
+ regex: (.+?)(?::\d+)?;(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
@@ -1318,6 +900,7 @@ serverFiles:
#
# * `prometheus.io/probe`: Only probe services that have a value of `true`
- job_name: 'kubernetes-services'
+ honor_labels: true
metrics_path: /probe
params:
@@ -1355,6 +938,7 @@ serverFiles:
# * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
# * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
- job_name: 'kubernetes-pods'
+ honor_labels: true
kubernetes_sd_configs:
- role: pod
@@ -1374,10 +958,15 @@ serverFiles:
action: replace
target_label: __metrics_path__
regex: (.+)
- - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
action: replace
- regex: ([^:]+)(?::\d+)?;(\d+)
- replacement: $1:$2
+ regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
+ replacement: '[$2]:$1'
+ target_label: __address__
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
+ action: replace
+ regex: (\d+);((([0-9]+?)(\.|$)){4})
+ replacement: $2:$1
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
@@ -1406,6 +995,7 @@ serverFiles:
# * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
# * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
- job_name: 'kubernetes-pods-slow'
+ honor_labels: true
scrape_interval: 5m
scrape_timeout: 30s
@@ -1425,10 +1015,15 @@ serverFiles:
action: replace
target_label: __metrics_path__
regex: (.+)
- - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
action: replace
- regex: ([^:]+)(?::\d+)?;(\d+)
- replacement: $1:$2
+ regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
+ replacement: '[$2]:$1'
+ target_label: __address__
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
+ action: replace
+ regex: (\d+);((([0-9]+?)(\.|$)){4})
+ replacement: $2:$1
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
@@ -1448,29 +1043,29 @@ serverFiles:
# adds additional scrape configs to prometheus.yml
# must be a string so you have to add a | after extraScrapeConfigs:
# example adds prometheus-blackbox-exporter scrape config
-extraScrapeConfigs:
-# - job_name: 'prometheus-blackbox-exporter'
-# metrics_path: /probe
-# params:
-# module: [http_2xx]
-# static_configs:
-# - targets:
-# - https://example.com
-# relabel_configs:
-# - source_labels: [__address__]
-# target_label: __param_target
-# - source_labels: [__param_target]
-# target_label: instance
-# - target_label: __address__
-# replacement: prometheus-blackbox-exporter:9115
+extraScrapeConfigs: ""
+ # - job_name: 'prometheus-blackbox-exporter'
+ # metrics_path: /probe
+ # params:
+ # module: [http_2xx]
+ # static_configs:
+ # - targets:
+ # - https://example.com
+ # relabel_configs:
+ # - source_labels: [__address__]
+ # target_label: __param_target
+ # - source_labels: [__param_target]
+ # target_label: instance
+ # - target_label: __address__
+ # replacement: prometheus-blackbox-exporter:9115
# Adds option to add alert_relabel_configs to avoid duplicate alerts in alertmanager
# useful in H/A prometheus with different external labels but the same alerts
-alertRelabelConfigs:
-# alert_relabel_configs:
-# - source_labels: [dc]
-# regex: (.+)\d+
-# target_label: dc
+alertRelabelConfigs: {}
+ # alert_relabel_configs:
+ # - source_labels: [dc]
+ # regex: (.+)\d+
+ # target_label: dc
networkPolicy:
## Enable creation of NetworkPolicy resources.
@@ -1478,4 +1073,57 @@ networkPolicy:
enabled: false
# Force namespace of namespaced resources
-forceNamespace: null
+forceNamespace: ""
+
+# Configuration of subcharts defined in Chart.yaml
+
+## alertmanager sub-chart configurable values
+## Please see https://github.com/prometheus-community/helm-charts/tree/main/charts/alertmanager
+##
+alertmanager:
+ ## If false, alertmanager will not be installed
+ ##
+ enabled: true
+
+ persistence:
+ enabled: false
+
+ podSecurityContext:
+ runAsUser: 65534
+ runAsNonRoot: true
+ runAsGroup: 65534
+ fsGroup: 65534
+
+## kube-state-metrics sub-chart configurable values
+## Please see https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics
+##
+kube-state-metrics:
+ ## If false, kube-state-metrics sub-chart will not be installed
+ ##
+ enabled: true
+
+## promtheus-node-exporter sub-chart configurable values
+## Please see https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-node-exporter
+##
+prometheus-node-exporter:
+ ## If false, node-exporter will not be installed
+ ##
+ enabled: true
+
+ rbac:
+ pspEnabled: false
+
+ containerSecurityContext:
+ allowPrivilegeEscalation: false
+
+## pprometheus-pushgateway sub-chart configurable values
+## Please see https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-pushgateway
+##
+prometheus-pushgateway:
+ ## If false, pushgateway will not be installed
+ ##
+ enabled: true
+
+ # Optional service annotations
+ serviceAnnotations:
+ prometheus.io/probe: pushgateway
diff --git a/deploy/charts/admin-stack/templates/apps/_zookeeper.tpl b/deploy/charts/admin-stack/charts/zookeeper/templates/_charts.tpl
similarity index 100%
rename from deploy/charts/admin-stack/templates/apps/_zookeeper.tpl
rename to deploy/charts/admin-stack/charts/zookeeper/templates/_charts.tpl
diff --git a/deploy/charts/admin-stack/templates/apps/_kube-state-metrics.tpl b/deploy/charts/admin-stack/templates/apps/_kube-state-metrics.tpl
deleted file mode 100644
index 1ecb303b..00000000
--- a/deploy/charts/admin-stack/templates/apps/_kube-state-metrics.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-{{/*
-Create the name of the service account to use
-*/}}
-{{- define "kube-state-metrics.serviceAccountName" -}}
-{{- if .Values.serviceAccount.create -}}
- {{ default (include "kube-state-metrics.fullname" .) .Values.serviceAccount.name }}
-{{- else -}}
- {{ default "default" .Values.serviceAccount.name }}
-{{- end -}}
-{{- end -}}
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/templates/apps/_node-exporter.tpl b/deploy/charts/admin-stack/templates/apps/_node-exporter.tpl
deleted file mode 100644
index f55b21a7..00000000
--- a/deploy/charts/admin-stack/templates/apps/_node-exporter.tpl
+++ /dev/null
@@ -1,43 +0,0 @@
-{{/*
-Common labels
-*/}}
-{{- define "prometheus-node-exporter.labels" -}}
-helm.sh/chart: {{ include "prometheus-node-exporter.chart" . }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-app.kubernetes.io/component: metrics
-app.kubernetes.io/part-of: {{ include "prometheus-node-exporter.name" . }}
-{{ include "prometheus-node-exporter.selectorLabels" . }}
-{{- with .Chart.AppVersion }}
-app.kubernetes.io/version: {{ . | quote }}
-{{- end }}
-{{- with .Values.podLabels }}
-{{ toYaml . }}
-{{- end }}
-{{- if .Values.releaseLabel }}
-release: {{ .Release.Name }}
-{{- end }}
-{{- end }}
-
-{{- define "prometheus.nodeExporter.labels" -}}
-{{ include "prometheus.nodeExporter.matchLabels" . }}
-{{ include "prometheus.common.metaLabels" . }}
-{{- end -}}
-
-{{/* Sets default scrape limits for servicemonitor */}}
-{{- define "servicemonitor.scrapeLimits" -}}
-{{- with .sampleLimit }}
-sampleLimit: {{ . }}
-{{- end }}
-{{- with .targetLimit }}
-targetLimit: {{ . }}
-{{- end }}
-{{- with .labelLimit }}
-labelLimit: {{ . }}
-{{- end }}
-{{- with .labelNameLengthLimit }}
-labelNameLengthLimit: {{ . }}
-{{- end }}
-{{- with .labelValueLengthLimit }}
-labelValueLengthLimit: {{ . }}
-{{- end }}
-{{- end }}
diff --git a/deploy/charts/admin-stack/templates/apps/_prometheus.tpl b/deploy/charts/admin-stack/templates/apps/_prometheus.tpl
deleted file mode 100644
index df826519..00000000
--- a/deploy/charts/admin-stack/templates/apps/_prometheus.tpl
+++ /dev/null
@@ -1,122 +0,0 @@
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "prometheus.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "prometheus.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "prometheus.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-
-{{- define "prometheus.server.labels" -}}
-{{ include "prometheus.server.matchLabels" . }}
-{{ include "prometheus.common.metaLabels" . }}
-{{- end -}}
-
-{{- define "prometheus.server.matchLabels" -}}
-component: {{ .Values.server.name | quote }}
-{{ include "prometheus.common.matchLabels" . }}
-{{- end -}}
-
-{{/*
-Create unified labels for prometheus components
-*/}}
-{{- define "prometheus.common.matchLabels" -}}
-app: {{ template "prometheus.name" . }}
-release: {{ .Release.Name }}
-{{- end -}}
-
-{{- define "prometheus.common.metaLabels" -}}
-chart: {{ template "prometheus.chart" . }}
-heritage: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Define the prometheus.namespace template if set with forceNamespace or .Release.Namespace is set
-*/}}
-{{- define "prometheus.namespace" -}}
-{{- if .Values.forceNamespace -}}
-{{ printf "namespace: %s" .Values.forceNamespace }}
-{{- else -}}
-{{ printf "namespace: %s" .Release.Namespace }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create a fully qualified Prometheus server name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "prometheus.server.fullname" -}}
-{{- if .Values.server.fullnameOverride -}}
-{{- .Values.server.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- printf "%s-%s" .Release.Name .Values.server.name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s-%s" .Release.Name $name .Values.server.name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create the name of the service account to use for the server component
-*/}}
-{{- define "prometheus.serviceAccountName.server" -}}
-{{- if .Values.serviceAccounts.server.create -}}
- {{ default (include "prometheus.server.fullname" .) .Values.serviceAccounts.server.name }}
-{{- else -}}
- {{ default "default" .Values.serviceAccounts.server.name }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Get KubeVersion removing pre-release information.
-*/}}
-{{- define "prometheus.kubeVersion" -}}
- {{- default .Capabilities.KubeVersion.Version (regexFind "v[0-9]+\\.[0-9]+\\.[0-9]+" .Capabilities.KubeVersion.Version) -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for daemonset.
-*/}}
-{{- define "prometheus.daemonset.apiVersion" -}}
-{{- print "apps/v1" -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for networkpolicy.
-*/}}
-{{- define "prometheus.networkPolicy.apiVersion" -}}
-{{- print "networking.k8s.io/v1" -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for podsecuritypolicy.
-*/}}
-{{- define "prometheus.podSecurityPolicy.apiVersion" -}}
-{{- print "policy/v1beta1" -}}
-{{- end -}}
\ No newline at end of file
diff --git a/deploy/charts/admin-stack/templates/apps/_pushgateway.tpl b/deploy/charts/admin-stack/templates/apps/_pushgateway.tpl
deleted file mode 100644
index b31ed217..00000000
--- a/deploy/charts/admin-stack/templates/apps/_pushgateway.tpl
+++ /dev/null
@@ -1,39 +0,0 @@
-{{- define "prometheus.pushgateway.labels" -}}
-{{ include "prometheus.pushgateway.matchLabels" . }}
-{{ include "prometheus.common.metaLabels" . }}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for networkpolicy.
-*/}}
-{{- define "prometheus-pushgateway.networkPolicy.apiVersion" -}}
-{{- if semverCompare ">=1.4-0, <1.7-0" .Capabilities.KubeVersion.GitVersion }}
-{{- print "extensions/v1beta1" }}
-{{- else if semverCompare "^1.7-0" .Capabilities.KubeVersion.GitVersion }}
-{{- print "networking.k8s.io/v1" }}
-{{- end }}
-{{- end }}
-
-{{/*
-Define PDB apiVersion
-*/}}
-{{- define "prometheus-pushgateway.pdb.apiVersion" -}}
-{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }}
-{{- print "policy/v1" }}
-{{- else }}
-{{- print "policy/v1beta" }}
-{{- end }}
-{{- end }}
-
-{{/*
-Define Ingress apiVersion
-*/}}
-{{- define "prometheus-pushgateway.ingress.apiVersion" -}}
-{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
-{{- print "networking.k8s.io/v1" }}
-{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
-{{- print "networking.k8s.io/v1beta1" }}
-{{- else }}
-{{- print "extensions/v1beta1" }}
-{{- end }}
-{{- end }}