Compare commits

...

2 Commits

Author SHA1 Message Date
Kjeld Schouten
883eae6afa bump 2024-01-02 22:37:31 +01:00
Kjeld Schouten
485509bed6 feat(promtheus): directly consume kube-prometheus-stack upstream 2024-01-02 22:29:28 +01:00
25 changed files with 254 additions and 2616 deletions

View File

@@ -1,7 +1,7 @@
kubeVersion: '>=1.24.0-0'
apiVersion: v2
name: prometheus
version: 16.1.8
version: 17.0.0
appVersion: 2.48.1
description: kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator.
home: https://truecharts.org/charts/enterprise/prometheus
@@ -26,18 +26,11 @@ dependencies:
alias: ""
tags: []
import-values: []
- name: node-exporter
version: 6.1.6
repository: https://deps.truecharts.org
condition: exporters.enabled,exporters.node-exporter.enabled
alias: ""
tags: []
import-values: []
- name: kube-state-metrics
version: 6.1.6
repository: https://deps.truecharts.org
condition: exporters.enabled,exporters.kube-state-metrics.enabled
alias: ""
- name: kube-prometheus-stack
version: 55.5.1
repository: https://prometheus-community.github.io/helm-charts
condition: ""
alias: "kps"
tags: []
import-values: []
annotations:

View File

@@ -1,210 +0,0 @@
{{/* Name suffixed with operator */}}
{{- define "kube-prometheus.fullname" -}}
{{- printf "%s" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Name suffixed with operator */}}
{{- define "kube-prometheus.name" -}}
{{- printf "%s" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Name suffixed with operator */}}
{{- define "kube-prometheus.operator.name" -}}
{{- printf "%s-operator" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Name suffixed with prometheus */}}
{{- define "kube-prometheus.prometheus.name" -}}
{{- printf "%s-prometheus" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Name suffixed with alertmanager */}}
{{- define "kube-prometheus.alertmanager.name" -}}
{{- printf "%s-alertmanager" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Name suffixed with thanos */}}
{{- define "kube-prometheus.thanos.name" -}}
{{- printf "%s-thanos" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Fullname suffixed with operator */}}
{{- define "kube-prometheus.operator.fullname" -}}
{{- printf "%s-operator" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Fullname suffixed with prometheus */}}
{{- define "kube-prometheus.prometheus.fullname" -}}
{{- printf "%s-prometheus" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Fullname suffixed with alertmanager */}}
{{- define "kube-prometheus.alertmanager.fullname" -}}
{{- printf "%s-alertmanager" (include "tc.v1.common.lib.chart.names.fullname" . ) -}}
{{- end }}
{{/* Fullname suffixed with thanos */}}
{{- define "kube-prometheus.thanos.fullname" -}}
{{- printf "%s-thanos" (include "kube-prometheus.prometheus.fullname" .) -}}
{{- end }}
{{- define "kube-prometheus.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common Labels
*/}}
{{- define "kube-prometheus.labels" -}}
{{- $labels := (include "tc.v1.common.lib.metadata.allLabels" $ | fromYaml) -}}
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "labels" $labels) | trim) }}
{{- . | nindent 0 }}
{{- end }}
{{- if .Values.global.labels }}
{{ toYaml .Values.global.labels }}
{{- end }}
{{- end -}}
{{/*
Labels for operator
*/}}
{{- define "kube-prometheus.operator.labels" -}}
{{- $labels := (include "tc.v1.common.lib.metadata.allLabels" $ | fromYaml) -}}
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "labels" $labels) | trim) }}
{{- . | nindent 0 }}
{{- end }}
app.kubernetes.io/component: operator
{{- end -}}
{{/*
Labels for prometheus
*/}}
{{- define "kube-prometheus.prometheus.labels" -}}
{{- $labels := (include "tc.v1.common.lib.metadata.allLabels" $ | fromYaml) -}}
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "labels" $labels) | trim) }}
{{- . | nindent 0 }}
{{- end }}
app.kubernetes.io/component: prometheus
{{- end -}}
{{/*
Labels for alertmanager
*/}}
{{- define "kube-prometheus.alertmanager.labels" -}}
{{- $labels := (include "tc.v1.common.lib.metadata.allLabels" $ | fromYaml) -}}
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "labels" $labels) | trim) }}
{{- . | nindent 0 }}
{{- end }}
app.kubernetes.io/component: alertmanager
{{- end -}}
{{/*
matchLabels for operator
*/}}
{{- define "kube-prometheus.operator.matchLabels" -}}
{{ include "tc.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $ )}}
app.kubernetes.io/component: operator
{{- end -}}
{{/*
matchLabels for prometheus
*/}}
{{- define "kube-prometheus.prometheus.matchLabels" -}}
{{ include "tc.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $ )}}
app.kubernetes.io/component: prometheus
{{- end -}}
{{/*
matchLabels for alertmanager
*/}}
{{- define "kube-prometheus.alertmanager.matchLabels" -}}
{{ include "tc.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $ )}}
app.kubernetes.io/component: alertmanager
{{- end -}}
{{/*
Return the proper Prometheus Operator image name
*/}}
{{- define "kube-prometheus.image" -}}
{{ printf "%s:%s" .Values.image.repository (default .Chart.AppVersion .Values.image.tag) | quote }}
{{- end -}}
{{/*
Return the proper Prometheus Operator Reloader image name
*/}}
{{- define "kube-prometheus.prometheusConfigReloader.image" -}}
{{- include "kube-prometheus.image" . -}}
{{- end -}}
{{/*
Return the proper Prometheus Image name
*/}}
{{- define "kube-prometheus.prometheus.image" -}}
{{ printf "%s:%s" .Values.image.repository (default .Chart.AppVersion .Values.image.tag) | quote }}
{{- end -}}
{{/*
Return the proper Thanos Image name
*/}}
{{- define "kube-prometheus.prometheus.thanosImage" -}}
{{ printf "%s:%s" .Values.thanosImage.repository (default .Chart.AppVersion .Values.thanosImage.tag) | quote }}
{{- end -}}
{{/*
Return the proper Alertmanager Image name
*/}}
{{- define "kube-prometheus.alertmanager.image" -}}
{{ printf "%s:%s" .Values.alertmanagerImage.repository (default .Chart.AppVersion .Values.alertmanagerImage.tag) | quote }}
{{- end -}}
{{/*
Return the proper Docker Image Registry Secret Names
*/}}
{{- define "kube-prometheus.imagePullSecrets" -}}
{{- end -}}
{{/*
Create the name of the operator service account to use
*/}}
{{- define "kube-prometheus.operator.serviceAccountName" -}}
{{- if .Values.operator.serviceAccount.create -}}
{{ default (include "kube-prometheus.operator.fullname" .) .Values.operator.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.operator.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the prometheus service account to use
*/}}
{{- define "kube-prometheus.prometheus.serviceAccountName" -}}
{{- if .Values.prometheus.serviceAccount.create -}}
{{ default (include "kube-prometheus.prometheus.fullname" .) .Values.prometheus.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.prometheus.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the alertmanager service account to use
*/}}
{{- define "kube-prometheus.alertmanager.serviceAccountName" -}}
{{- if .Values.alertmanager.serviceAccount.create -}}
{{ default (include "kube-prometheus.alertmanager.fullname" .) .Values.alertmanager.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.alertmanager.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Compile all warnings into a single message, and call fail.
*/}}
{{- define "kube-prometheus.validateValues" -}}
{{- $messages := list -}}
{{- $messages := without $messages "" -}}
{{- $message := join "\n" $messages -}}
{{- if $message -}}
{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}}
{{- end -}}
{{- end -}}

View File

@@ -1,174 +0,0 @@
{{- define "prometheus.alertmanager.alertmanager" -}}
{{- if .Values.alertmanager.enabled }}
---
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
name: {{ template "kube-prometheus.alertmanager.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.alertmanager.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.alertmanager.replicaCount }}
serviceAccountName: {{ template "kube-prometheus.alertmanager.serviceAccountName" . }}
{{- if .Values.alertmanager.image }}
image: {{ template "kube-prometheus.alertmanager.image" . }}
{{- end }}
listenLocal: {{ .Values.alertmanager.listenLocal }}
{{- if index .Values.alertmanager "externalUrl" }}
externalUrl: "{{ .Values.alertmanager.externalUrl }}"
{{- else if and .Values.ingress.alertmanager.enabled .Values.ingress.alertmanager.hosts }}
externalUrl: {{ if .Values.ingress.alertmanager.tls }}https{{else}}http{{ end }}://{{ (index .Values.ingress.alertmanager.hosts 0).name }}{{ .Values.alertmanager.routePrefix }}
{{- else }}
externalUrl: http://{{ template "kube-prometheus.alertmanager.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.alertmanager.ports.alertmanager.port }}{{ .Values.alertmanager.routePrefix }}
{{- end }}
portName: "{{ .Values.alertmanager.portName }}"
paused: {{ .Values.alertmanager.paused }}
logFormat: {{ .Values.alertmanager.logFormat }}
logLevel: {{ .Values.alertmanager.logLevel }}
retention: {{ .Values.alertmanager.retention }}
{{- if .Values.alertmanager.secrets }}
secrets: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.secrets "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.configMaps }}
configMaps: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.configMaps "context" $) | nindent 4 }}
{{- end }}
resources: {{- toYaml .Values.alertmanager.resources | nindent 4 }}
routePrefix: "{{ .Values.alertmanager.routePrefix }}"
{{- if .Values.alertmanager.podSecurityContext.enabled }}
securityContext: {{- omit .Values.alertmanager.podSecurityContext "enabled" | toYaml | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.storageSpec }}
storage: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.storageSpec "context" $) | nindent 4 }}
{{- else }}
{{- if .Values.alertmanager.persistence.enabled }}
storage:
volumeClaimTemplate:
spec:
accessModes:
{{- range .Values.alertmanager.persistence.accessModes }}
- {{ . | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.alertmanager.persistence.size | quote }}
{{- with (include "tc.v1.common.lib.storage.storageClassName" ( dict "rootCtx" . "objectData" .Values.prometheus.persistence )) | trim }}
storageClassName: {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.alertmanager.podMetadata.labels .Values.alertmanager.podMetadata.annotations (eq .Values.alertmanager.podAntiAffinityPreset "soft") (eq .Values.alertmanager.podAntiAffinityPreset "hard") }}
podMetadata:
labels:
{{- if .Values.alertmanager.podMetadata.labels }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.podMetadata.labels "context" $) | nindent 6 }}
{{- end }}
{{- if or (eq .Values.alertmanager.podAntiAffinityPreset "soft") (eq .Values.alertmanager.podAntiAffinityPreset "hard") }}
{{- include "kube-prometheus.alertmanager.matchLabels" . | nindent 6 }}
{{- end }}
{{- if .Values.alertmanager.podMetadata.annotations }}
annotations:
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.podMetadata.annotations "context" $) | nindent 6 }}
{{- end }}
{{- end }}
{{- if .Values.alertmanager.affinity }}
affinity: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.affinity "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.nodeSelector }}
nodeSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.nodeSelector "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.tolerations }}
tolerations: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.tolerations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.volumes }}
volumes: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.volumes "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.volumeMounts }}
volumeMounts: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.volumeMounts "context" $) | nindent 4 }}
{{- end }}
{{- include "kube-prometheus.imagePullSecrets" . | indent 2 }}
{{- if or .Values.alertmanager.containers .Values.alertmanager.containerSecurityContext.enabled .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled }}
containers:
{{- if or .Values.alertmanager.containerSecurityContext.enabled .Values.alertmanager.livenessProbe.enabled .Values.alertmanager.readinessProbe.enabled }}
## This monkey patching is needed until the securityContexts are
## directly patchable via the CRD.
## ref: https://github.com/prometheus-operator/prometheus-operator/issues/3947
## currently implemented with strategic merge
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/strategic-merge-patch.md
- name: alertmanager
{{- if .Values.alertmanager.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.alertmanager.containerSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if .Values.alertmanager.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.alertmanager.livenessProbe.path }}
port: alertmanager
scheme: HTTP
initialDelaySeconds: {{ .Values.alertmanager.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.alertmanager.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.alertmanager.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.alertmanager.livenessProbe.failureThreshold }}
successThreshold: {{ .Values.alertmanager.livenessProbe.successThreshold }}
{{- end }}
{{- if .Values.alertmanager.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.alertmanager.readinessProbe.path }}
port: alertmanager
scheme: HTTP
initialDelaySeconds: {{ .Values.alertmanager.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.alertmanager.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.alertmanager.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.alertmanager.readinessProbe.failureThreshold }}
successThreshold: {{ .Values.alertmanager.readinessProbe.successThreshold }}
{{- end }}
{{- end }}
{{- if or .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled .Values.operator.prometheusConfigReloader.livenessProbe.enabled .Values.operator.prometheusConfigReloader.readinessProbe.enabled }}
## This monkey patching is needed until the securityContexts are
## directly patchable via the CRD.
## ref: https://github.com/prometheus-operator/prometheus-operator/issues/3947
## currently implemented with strategic merge
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/strategic-merge-patch.md
- name: config-reloader
{{- if .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.operator.prometheusConfigReloader.containerSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if .Values.operator.prometheusConfigReloader.livenessProbe.enabled }}
livenessProbe:
tcpSocket:
port: reloader-web
initialDelaySeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.operator.prometheusConfigReloader.livenessProbe.failureThreshold }}
successThreshold: {{ .Values.operator.prometheusConfigReloader.livenessProbe.successThreshold }}
{{- end }}
{{- if .Values.operator.prometheusConfigReloader.readinessProbe.enabled }}
readinessProbe:
tcpSocket:
port: reloader-web
initialDelaySeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.operator.prometheusConfigReloader.readinessProbe.failureThreshold }}
successThreshold: {{ .Values.operator.prometheusConfigReloader.readinessProbe.successThreshold }}
{{- end }}
{{- end }}
{{- if .Values.alertmanager.containers }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.containers "context" $) | nindent 4 }}
{{- end }}
{{- end }}
{{- if .Values.alertmanager.priorityClassName }}
priorityClassName: {{ .Values.alertmanager.priorityClassName }}
{{- end }}
{{- if .Values.alertmanager.additionalPeers }}
additionalPeers: {{ .Values.alertmanager.additionalPeers }}
{{- end }}
{{- if .Values.alertmanager.configNamespaceSelector }}
alertmanagerConfigNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.configNamespaceSelector "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.alertmanager.configSelector }}
alertmanagerConfigSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.configSelector "context" $) | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,13 +0,0 @@
{{- if (and .Values.alertmanager.enabled (not .Values.alertmanager.externalConfig) ) }}
apiVersion: v1
kind: Secret
metadata:
name: alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.alertmanager.labels" . | nindent 4 }}
data:
alertmanager.yaml: {{ toYaml .Values.alertmanager.config | b64enc | quote }}
{{- range $key, $val := .Values.alertmanager.templateFiles }}
{{ $key }}: {{ $val | b64enc | quote }}
{{- end }}
{{- end }}

View File

@@ -1,12 +0,0 @@
{{- if and .Values.alertmanager.enabled .Values.alertmanager.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "kube-prometheus.alertmanager.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.alertmanager.labels" . | nindent 4 }}
{{- if index .Values.alertmanager.serviceAccount "annotations" }}
annotations: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.alertmanager.serviceAccount.annotations "context" $) | nindent 4 }}
{{- end }}
{{- include "kube-prometheus.imagePullSecrets" . }}
{{- end }}

View File

@@ -1,26 +0,0 @@
{{- if and .Values.alertmanager.enabled .Values.alertmanager.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.alertmanager.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.alertmanager.labels" . | nindent 4 }}
spec:
selector:
matchLabels: {{- include "kube-prometheus.alertmanager.matchLabels" . | nindent 6 }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: http
{{- if .Values.alertmanager.serviceMonitor.interval }}
interval: {{ .Values.alertmanager.serviceMonitor.interval }}
{{- end }}
path: {{ trimSuffix "/" .Values.alertmanager.routePrefix }}/metrics
{{- if .Values.alertmanager.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.alertmanager.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.alertmanager.serviceMonitor.relabelings }}
relabelings: {{- toYaml .Values.alertmanager.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -1,13 +1,5 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{- include "prometheus.prometheus.prometheus" . }}
{{- include "prometheus.prometheus.additionalprometheusrules" . }}
{{- include "prometheus.prometheus.additionalscrapejobs" . }}
{{- include "prometheus.prometheus.servicemonitor" . }}
{{- include "prometheus.alertmanager.alertmanager" . }}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@@ -1,22 +0,0 @@
{{- if and .Values.coreDns.enabled .Values.coreDns.service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ template "kube-prometheus.fullname" . }}-coredns
namespace: {{ .Values.coreDns.namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-coredns
spec:
clusterIP: None
ports:
- name: http-metrics
port: {{ .Values.coreDns.service.port }}
protocol: TCP
targetPort: {{ .Values.coreDns.service.targetPort }}
selector:
{{- if .Values.coreDns.service.selector }}
{{ toYaml .Values.coreDns.service.selector | indent 4 }}
{{- else}}
k8s-app: kube-dns
{{- end}}
{{- end }}

View File

@@ -1,29 +0,0 @@
{{- if .Values.coreDns.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.fullname" . }}-coredns
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-coredns
spec:
jobLabel: k8s-app
selector:
matchLabels:
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-coredns
namespaceSelector:
matchNames:
- {{ .Values.coreDns.namespace }}
endpoints:
- port: http-metrics
{{- if .Values.coreDns.serviceMonitor.interval}}
interval: {{ .Values.coreDns.serviceMonitor.interval }}
{{- end }}
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
{{- if .Values.coreDns.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.coreDns.serviceMonitor.metricRelabelings "context" $) | nindent 6 }}
{{- end }}
{{- if .Values.coreDns.serviceMonitor.relabelings }}
relabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.coreDns.serviceMonitor.relabelings "context" $) | nindent 6 }}
{{- end }}
{{- end }}

View File

@@ -1,35 +0,0 @@
{{- if .Values.kubeApiServer.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.fullname" . }}-apiserver
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: apiserver
spec:
jobLabel: component
selector:
matchLabels:
component: apiserver
provider: kubernetes
namespaceSelector:
matchNames:
- default
endpoints:
- port: https
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
serverName: kubernetes
insecureSkipVerify: true
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
{{- if .Values.kubeApiServer.serviceMonitor.interval }}
interval: {{ .Values.kubeApiServer.serviceMonitor.interval }}
{{- end }}
{{- if .Values.kubeApiServer.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.kubeApiServer.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.kubeApiServer.serviceMonitor.relabelings }}
relabelings: {{- toYaml .Values.kubeApiServer.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -1,18 +0,0 @@
{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.endpoints }}
apiVersion: v1
kind: Endpoints
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
namespace: {{ .Values.kubeControllerManager.namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: kube-controller-manager
subsets:
- addresses:
{{- range .Values.kubeControllerManager.endpoints }}
- ip: {{ . }}
{{- end }}
ports:
- name: http-metrics
port: {{ .Values.kubeControllerManager.service.port }}
protocol: TCP
{{- end }}

View File

@@ -1,25 +0,0 @@
{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
namespace: {{ .Values.kubeControllerManager.namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
spec:
clusterIP: None
ports:
- name: http-metrics
port: {{ .Values.kubeControllerManager.service.port }}
protocol: TCP
targetPort: {{ .Values.kubeControllerManager.service.targetPort }}
{{- if .Values.kubeControllerManager.endpoints }}{{- else }}
selector:
{{- if .Values.kubeControllerManager.service.selector }}
{{ toYaml .Values.kubeControllerManager.service.selector | indent 4 }}
{{- else}}
component: kube-controller-manager
{{- end}}
{{- end }}
type: ClusterIP
{{- end }}

View File

@@ -1,40 +0,0 @@
{{- if .Values.kubeControllerManager.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
spec:
jobLabel: component
selector:
matchLabels:
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-controller-manager
namespaceSelector:
matchNames:
- {{ .Values.kubeControllerManager.namespace }}
endpoints:
- port: http-metrics
{{- if .Values.kubeControllerManager.serviceMonitor.interval }}
interval: {{ .Values.kubeControllerManager.serviceMonitor.interval }}
{{- end }}
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
{{- if .Values.kubeControllerManager.serviceMonitor.https }}
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
{{- if .Values.kubeControllerManager.serviceMonitor.insecureSkipVerify }}
insecureSkipVerify: {{ .Values.kubeControllerManager.serviceMonitor.insecureSkipVerify }}
{{- end }}
{{- if .Values.kubeControllerManager.serviceMonitor.serverName }}
serverName: {{ .Values.kubeControllerManager.serviceMonitor.serverName }}
{{- end }}
{{- end }}
{{- if .Values.kubeControllerManager.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.kubeControllerManager.serviceMonitor.metricRelabelings "context" $) | nindent 6 }}
{{- end }}
{{- if .Values.kubeControllerManager.serviceMonitor.relabelings }}
relabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.kubeControllerManager.serviceMonitor.relabelings "context" $) | nindent 6 }}
{{- end }}
{{- end }}

View File

@@ -1,18 +0,0 @@
{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.endpoints }}
apiVersion: v1
kind: Endpoints
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
namespace: {{ .Values.kubeScheduler.namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: kube-scheduler
subsets:
- addresses:
{{- range .Values.kubeScheduler.endpoints }}
- ip: {{ . }}
{{- end }}
ports:
- name: http-metrics
port: {{ .Values.kubeScheduler.service.port }}
protocol: TCP
{{- end }}

View File

@@ -1,25 +0,0 @@
{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
namespace: {{ .Values.kubeScheduler.namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
spec:
clusterIP: None
ports:
- name: http-metrics
port: {{ .Values.kubeScheduler.service.port}}
protocol: TCP
targetPort: {{ .Values.kubeScheduler.service.targetPort}}
{{- if .Values.kubeScheduler.endpoints }}{{- else }}
selector:
{{- if .Values.kubeScheduler.service.selector }}
{{ toYaml .Values.kubeScheduler.service.selector | indent 4 }}
{{- else}}
component: kube-scheduler
{{- end}}
{{- end }}
type: ClusterIP
{{- end -}}

View File

@@ -1,40 +0,0 @@
{{- if .Values.kubeScheduler.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
spec:
jobLabel: component
selector:
matchLabels:
app.kubernetes.io/component: {{ template "kube-prometheus.fullname" . }}-kube-scheduler
namespaceSelector:
matchNames:
- {{ .Values.kubeScheduler.namespace }}
endpoints:
- port: http-metrics
{{- if .Values.kubeScheduler.serviceMonitor.interval }}
interval: {{ .Values.kubeScheduler.serviceMonitor.interval }}
{{- end }}
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
{{- if .Values.kubeScheduler.serviceMonitor.https }}
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
{{- if .Values.kubeScheduler.serviceMonitor.insecureSkipVerify }}
insecureSkipVerify: {{ .Values.kubeScheduler.serviceMonitor.insecureSkipVerify }}
{{- end}}
{{- if .Values.kubeScheduler.serviceMonitor.serverName }}
serverName: {{ .Values.kubeScheduler.serviceMonitor.serverName }}
{{- end}}
{{- end}}
{{- if .Values.kubeScheduler.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.kubeScheduler.serviceMonitor.metricRelabelings "context" $) | nindent 6 }}
{{- end }}
{{- if .Values.kubeScheduler.serviceMonitor.relabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.kubeScheduler.serviceMonitor.relabelings "context" $) | nindent 6 }}
{{- end }}
{{- end }}

View File

@@ -1,85 +0,0 @@
{{- if .Values.kubelet.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.fullname" . }}-kubelet
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.labels" . | nindent 4 }}
app.kubernetes.io/component: kubelet
spec:
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: kubelet
namespaceSelector:
matchNames:
- {{ .Values.kubelet.namespace }}
endpoints:
{{- if .Values.kubelet.serviceMonitor.https }}
- port: https-metrics
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
serverName: kubernetes
insecureSkipVerify: true
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
honorLabels: true
{{- if .Values.kubelet.serviceMonitor.interval }}
interval: {{ .Values.kubelet.serviceMonitor.interval }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.kubelet.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.relabelings }}
relabelings: {{- toYaml .Values.kubelet.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
- port: https-metrics
path: /metrics/cadvisor
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
serverName: kubernetes
insecureSkipVerify: true
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
honorLabels: true
{{- if .Values.kubelet.serviceMonitor.interval }}
interval: {{ .Values.kubelet.serviceMonitor.interval }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.cAdvisorRelabelings }}
relabelings: {{- toYaml .Values.kubelet.serviceMonitor.cAdvisorRelabelings | nindent 8 }}
{{- end }}
{{- else }}
- port: http-metrics
scheme: http
tlsConfig:
insecureSkipVerify: false
honorLabels: true
{{- if .Values.kubelet.serviceMonitor.interval }}
interval: {{ .Values.kubelet.serviceMonitor.interval }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.kubelet.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.relabelings }}
relabelings: {{- toYaml .Values.kubelet.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
- port: http-metrics
path: /metrics/cadvisor
scheme: http
tlsConfig:
insecureSkipVerify: false
honorLabels: true
{{- if .Values.kubelet.serviceMonitor.interval }}
interval: {{ .Values.kubelet.serviceMonitor.interval }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.kubelet.serviceMonitor.cAdvisorMetricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.kubelet.serviceMonitor.cAdvisorRelabelings }}
relabelings: {{- toYaml .Values.kubelet.serviceMonitor.cAdvisorRelabelings | nindent 8 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,15 +0,0 @@
{{- define "prometheus.prometheus.additionalprometheusrules" -}}
{{- if and .Values.prometheus.enabled .Values.prometheus.additionalPrometheusRules}}
{{- range .Values.prometheus.additionalPrometheusRules }}
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ template "kube-prometheus.name" $ }}-{{ .name }}
namespace: {{ $.Release.Namespace }}
labels: {{ include "kube-prometheus.prometheus.labels" $ | nindent 4 }}
spec:
groups: {{- toYaml .groups | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,13 +0,0 @@
{{- define "prometheus.prometheus.additionalscrapejobs" -}}
{{- if (and .Values.prometheus.additionalScrapeConfigs.enabled (eq .Values.prometheus.additionalScrapeConfigs.type "internal") ) }}
---
apiVersion: v1
kind: Secret
metadata:
name: additional-scrape-jobs-{{ template "kube-prometheus.prometheus.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
data:
scrape-jobs.yaml: {{ include "tc.v1.common.tplvalues.render" ( dict "value" .Values.prometheus.additionalScrapeConfigs.internal.jobList "context" $ ) | b64enc | quote }}
{{- end }}
{{- end }}

View File

@@ -1,363 +0,0 @@
{{- define "prometheus.prometheus.prometheus" -}}
{{- if .Values.prometheus.enabled }}
---
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: {{ template "kube-prometheus.prometheus.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.prometheus.replicaCount }}
serviceAccountName: {{ template "kube-prometheus.prometheus.serviceAccountName" . }}
{{- if .Values.prometheus.serviceMonitorSelector }}
serviceMonitorSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.serviceMonitorSelector "context" $) | nindent 4 }}
{{- else }}
serviceMonitorSelector: {}
{{- end }}
{{- if .Values.prometheus.podMonitorSelector }}
podMonitorSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.podMonitorSelector "context" $) | nindent 4 }}
{{- else }}
podMonitorSelector: {}
{{- end }}
{{- if .Values.prometheus.probeSelector }}
probeSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.probeSelector "context" $) | nindent 4 }}
{{- else }}
probeSelector: {}
{{- end }}
{{- if .Values.prometheus.scrapeConfigSelector }}
scrapeConfigSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.scrapeConfigSelector "context" $) | nindent 4 }}
{{- else }}
scrapeConfigSelector: {}
{{- end }}
alerting:
alertmanagers:
{{- if .Values.prometheus.alertingEndpoints }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.alertingEndpoints "context" $) | nindent 6 }}
{{- else if .Values.alertmanager.enabled }}
- namespace: {{ .Release.Namespace }}
name: {{ template "kube-prometheus.alertmanager.fullname" . }}
port: http
pathPrefix: "{{ .Values.alertmanager.routePrefix }}"
{{- else }}
[]
{{- end }}
{{- if .Values.prometheus.image }}
image: {{ template "kube-prometheus.prometheus.image" . }}
{{- end }}
{{- if .Values.prometheus.externalLabels }}
externalLabels: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.externalLabels "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.prometheusExternalLabelNameClear }}
prometheusExternalLabelName: ""
{{- else if .Values.prometheus.prometheusExternalLabelName }}
prometheusExternalLabelName: "{{ .Values.prometheus.prometheusExternalLabelName }}"
{{- end }}
{{- if .Values.prometheus.replicaExternalLabelNameClear }}
replicaExternalLabelName: ""
{{- else if .Values.prometheus.replicaExternalLabelName }}
replicaExternalLabelName: "{{ .Values.prometheus.replicaExternalLabelName }}"
{{- end }}
{{- if index .Values.prometheus "externalUrl" }}
externalUrl: "{{ .Values.prometheus.externalUrl }}"
{{- else if and .Values.ingress.main.enabled .Values.ingress.main.hosts }}
externalUrl: {{ if .Values.ingress.main.tls }}https{{else}}http{{ end }}://{{ (index .Values.ingress.main.hosts 0).name }}{{ .Values.prometheus.routePrefix }}
{{- else }}
externalUrl: http://{{ template "kube-prometheus.prometheus.fullname" . }}.{{ .Release.Namespace }}:9090{{ .Values.prometheus.routePrefix }}
{{- end }}
paused: {{ .Values.prometheus.paused }}
logLevel: {{ .Values.prometheus.logLevel }}
logFormat: {{ .Values.prometheus.logFormat }}
listenLocal: {{ .Values.prometheus.listenLocal }}
enableAdminAPI: {{ .Values.prometheus.enableAdminAPI }}
{{- if .Values.prometheus.enableFeatures }}
enableFeatures:
{{- range .Values.prometheus.enableFeatures }}
- {{ . | quote }}
{{- end }}
{{- end }}
{{- if .Values.prometheus.scrapeInterval }}
scrapeInterval: {{ .Values.prometheus.scrapeInterval }}
{{- end }}
{{- if .Values.prometheus.evaluationInterval }}
evaluationInterval: {{ .Values.prometheus.evaluationInterval }}
{{- end }}
{{- if .Values.prometheus.resources }}
resources: {{- toYaml .Values.prometheus.resources | nindent 4 }}
{{- end }}
retention: {{ .Values.prometheus.retention }}
{{- if .Values.prometheus.retentionSize }}
retentionSize: {{ .Values.prometheus.retentionSize }}
{{- end }}
{{- if .Values.prometheus.disableCompaction }}
disableCompaction: {{ .Values.prometheus.disableCompaction }}
{{- end }}
{{- if .Values.prometheus.walCompression }}
walCompression: {{ .Values.prometheus.walCompression }}
{{- end }}
portName: "{{ .Values.prometheus.portName }}"
routePrefix: "{{ .Values.prometheus.routePrefix }}"
{{- if .Values.prometheus.secrets }}
secrets: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.secrets "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.configMaps }}
configMaps: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.configMaps "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.serviceMonitorNamespaceSelector }}
serviceMonitorNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.serviceMonitorNamespaceSelector "context" $) | nindent 4 }}
{{- else }}
serviceMonitorNamespaceSelector: {}
{{- end }}
{{- if .Values.prometheus.podMonitorNamespaceSelector }}
podMonitorNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.podMonitorNamespaceSelector "context" $) | nindent 4 }}
{{- else }}
podMonitorNamespaceSelector: {}
{{- end }}
{{- if .Values.prometheus.probeNamespaceSelector }}
probeNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.probeNamespaceSelector "context" $) | nindent 4 }}
{{- else }}
probeNamespaceSelector: {}
{{- end }}
{{- if .Values.prometheus.scrapeConfigNamespaceSelector }}
scrapeConfigNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.scrapeConfigNamespaceSelector "context" $) | nindent 4 }}
{{- else }}
scrapeConfigNamespaceSelector: {}
{{- end }}
{{- if .Values.prometheus.remoteRead }}
remoteRead: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.remoteRead "context" $) | nindent 4 }}
{{- end }}
{{- with .Values.prometheus.remoteWrite }}
remoteWrite:
{{- tpl (toYaml .) $ | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.podSecurityContext.enabled }}
securityContext: {{- omit .Values.prometheus.podSecurityContext "enabled" | toYaml | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.ruleNamespaceSelector }}
ruleNamespaceSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.ruleNamespaceSelector "context" $) | nindent 4 }}
{{- else }}
ruleNamespaceSelector: {}
{{- end }}
{{- if .Values.prometheus.ruleSelector }}
ruleSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.ruleSelector "context" $) | nindent 4 }}
{{- else }}
ruleSelector: {}
{{- end }}
{{- if .Values.prometheus.storageSpec }}
storage: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.storageSpec "context" $) | nindent 4 }}
{{- else if .Values.prometheus.persistence.enabled }}
storage:
volumeClaimTemplate:
spec:
accessModes:
{{- range .Values.prometheus.persistence.accessModes }}
- {{ . | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.prometheus.persistence.size | quote }}
{{- with (include "tc.v1.common.lib.storage.storageClassName" ( dict "rootCtx" . "objectData" .Values.prometheus.persistence )) | trim }}
storageClassName: {{ . }}
{{- end }}
{{- end }}
{{- if or .Values.prometheus.podMetadata.labels .Values.prometheus.podMetadata.annotations (eq .Values.prometheus.podAntiAffinityPreset "soft") (eq .Values.prometheus.podAntiAffinityPreset "hard") }}
podMetadata:
labels:
{{- if .Values.prometheus.podMetadata.labels }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.podMetadata.labels "context" $) | nindent 6 }}
{{- end }}
{{- if or (eq .Values.prometheus.podAntiAffinityPreset "soft") (eq .Values.prometheus.podAntiAffinityPreset "hard") }}
{{- include "kube-prometheus.prometheus.matchLabels" . | nindent 6 }}
{{- end }}
{{- if .Values.prometheus.podMetadata.annotations }}
annotations:
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.podMetadata.annotations "context" $) | nindent 6 }}
{{- end }}
{{- end }}
{{- if .Values.prometheus.querySpec }}
query: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.querySpec "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.affinity }}
affinity: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.affinity "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.nodeSelector }}
nodeSelector: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.nodeSelector "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.tolerations }}
tolerations: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.tolerations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.volumes }}
volumes: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.volumes "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.prometheus.volumeMounts }}
volumeMounts: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.volumeMounts "context" $) | nindent 4 }}
{{- end }}
{{- if or .Values.prometheus.additionalScrapeConfigs.enabled .Values.prometheus.additionalScrapeConfigsExternal.enabled }}
additionalScrapeConfigs:
{{- if and .Values.prometheus.additionalScrapeConfigs.enabled (eq .Values.prometheus.additionalScrapeConfigs.type "external") }}
name: {{ .Values.prometheus.additionalScrapeConfigs.external.name }}
key: {{ .Values.prometheus.additionalScrapeConfigs.external.key }}
{{- else if and .Values.prometheus.additionalScrapeConfigs.enabled (eq .Values.prometheus.additionalScrapeConfigs.type "internal") }}
name: additional-scrape-jobs-{{ template "kube-prometheus.prometheus.fullname" . }}
key: scrape-jobs.yaml
{{- else if and (not .Values.prometheus.additionalScrapeConfigs.enabled) .Values.prometheus.additionalScrapeConfigsExternal.enabled }}
name: {{ .Values.prometheus.additionalScrapeConfigsExternal.name }}
key: {{ .Values.prometheus.additionalScrapeConfigsExternal.key }}
{{- end }}
{{- end }}
{{- if .Values.prometheus.additionalAlertRelabelConfigsExternal.enabled }}
additionalAlertRelabelConfigs:
name: {{ .Values.prometheus.additionalAlertRelabelConfigsExternal.name }}
key: {{ .Values.prometheus.additionalAlertRelabelConfigsExternal.key }}
{{- end }}
{{- include "kube-prometheus.imagePullSecrets" . | indent 2 }}
{{- if or .Values.prometheus.containers .Values.prometheus.thanos.create .Values.prometheus.containerSecurityContext.enabled .Values.prometheus.containerSecurityContext.enabled .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled }}
containers:
{{- if .Values.prometheus.thanos.create }}
- name: thanos-sidecar
image: {{ template "kube-prometheus.prometheus.thanosImage" . }}
imagePullPolicy: {{ .Values.prometheus.thanos.image.pullPolicy }}
args:
- sidecar
- --prometheus.url={{ default "http://localhost:9090" .Values.prometheus.thanos.prometheusUrl }}
- --grpc-address=0.0.0.0:10901
- --http-address=0.0.0.0:10902
- --tsdb.path=/prometheus/
{{- if .Values.prometheus.thanos.objectStorageConfig }}
- --objstore.config=$(OBJSTORE_CONFIG)
{{- end }}
{{- if .Values.prometheus.thanos.extraArgs }}
{{ toYaml .Values.prometheus.thanos.extraArgs | indent 8 | trim }}
{{- end }}
{{- if .Values.prometheus.thanos.objectStorageConfig }}
env:
- name: OBJSTORE_CONFIG
valueFrom:
secretKeyRef:
name: {{ .Values.prometheus.thanos.objectStorageConfig.secretName }}
key: {{ .Values.prometheus.thanos.objectStorageConfig.secretKey | default "thanos.yaml" }}
{{- end }}
{{- if .Values.prometheus.thanos.resources }}
resources: {{- toYaml .Values.prometheus.thanos.resources | nindent 8 }}
{{- end }}
ports:
- name: thanos
containerPort: 10901
protocol: TCP
- name: http
containerPort: 10902
protocol: TCP
volumeMounts:
- mountPath: /prometheus
name: prometheus-{{ template "kube-prometheus.prometheus.fullname" . }}-db
{{- if not (.Values.prometheus.storageSpec.disableMountSubPath | default (not .Values.prometheus.persistence.enabled)) }}
subPath: prometheus-db
{{- end }}
{{- if .Values.prometheus.thanos.extraVolumeMounts }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.thanos.extraVolumeMounts "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.prometheus.thanos.containerSecurityContext.enabled }}
# yamllint disable rule:indentation
securityContext: {{- omit .Values.prometheus.thanos.containerSecurityContext "enabled" | toYaml | nindent 8 }}
# yamllint enable rule:indentation
{{- end }}
{{- if .Values.prometheus.thanos.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.prometheus.thanos.livenessProbe.path }}
port: http
scheme: HTTP
initialDelaySeconds: {{ .Values.prometheus.thanos.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheus.thanos.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheus.thanos.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.prometheus.thanos.livenessProbe.failureThreshold }}
successThreshold: {{ .Values.prometheus.thanos.livenessProbe.successThreshold }}
{{- end }}
{{- if .Values.prometheus.thanos.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.prometheus.thanos.readinessProbe.path }}
port: http
scheme: HTTP
initialDelaySeconds: {{ .Values.prometheus.thanos.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheus.thanos.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheus.thanos.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.prometheus.thanos.readinessProbe.failureThreshold }}
successThreshold: {{ .Values.prometheus.thanos.readinessProbe.successThreshold }}
{{- end }}
{{- end }}
{{- if or .Values.prometheus.containerSecurityContext.enabled .Values.prometheus.livenessProbe.enabled .Values.prometheus.readinessProbe.enabled }}
## This monkey patching is needed until the securityContexts are
## directly patchable via the CRD.
## ref: https://github.com/prometheus-operator/prometheus-operator/issues/3947
## currently implemented with strategic merge
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/strategic-merge-patch.md
- name: prometheus
{{- if .Values.prometheus.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.prometheus.containerSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if .Values.prometheus.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.prometheus.livenessProbe.path }}
port: main
scheme: HTTP
initialDelaySeconds: {{ .Values.prometheus.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheus.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheus.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.prometheus.livenessProbe.failureThreshold }}
successThreshold: {{ .Values.prometheus.livenessProbe.successThreshold }}
{{- end }}
{{- if .Values.prometheus.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.prometheus.readinessProbe.path }}
port: main
scheme: HTTP
initialDelaySeconds: {{ .Values.prometheus.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheus.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheus.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.prometheus.readinessProbe.failureThreshold }}
successThreshold: {{ .Values.prometheus.readinessProbe.successThreshold }}
{{- end }}
{{- end }}
{{- if or .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled .Values.operator.prometheusConfigReloader.livenessProbe.enabled .Values.operator.prometheusConfigReloader.readinessProbe.enabled }}
## This monkey patching is needed until the securityContexts are
## directly patchable via the CRD.
## ref: https://github.com/prometheus-operator/prometheus-operator/issues/3947
## currently implemented with strategic merge
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/strategic-merge-patch.md
- name: config-reloader
{{- if .Values.operator.prometheusConfigReloader.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.operator.prometheusConfigReloader.containerSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if .Values.operator.prometheusConfigReloader.livenessProbe.enabled }}
livenessProbe:
tcpSocket:
port: reloader-web
initialDelaySeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.operator.prometheusConfigReloader.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.operator.prometheusConfigReloader.livenessProbe.failureThreshold }}
successThreshold: {{ .Values.operator.prometheusConfigReloader.livenessProbe.successThreshold }}
{{- end }}
{{- if .Values.operator.prometheusConfigReloader.readinessProbe.enabled }}
readinessProbe:
tcpSocket:
port: reloader-web
initialDelaySeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.operator.prometheusConfigReloader.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.operator.prometheusConfigReloader.readinessProbe.failureThreshold }}
successThreshold: {{ .Values.operator.prometheusConfigReloader.readinessProbe.successThreshold }}
{{- end }}
{{- end }}
{{- if .Values.prometheus.containers }}
{{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.containers "context" $) | nindent 4 }}
{{- end }}
{{- end }}
{{- if .Values.prometheus.priorityClassName }}
priorityClassName: {{ .Values.prometheus.priorityClassName }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,29 +0,0 @@
{{- define "prometheus.prometheus.servicemonitor" -}}
{{- if and .Values.prometheus.enabled .Values.prometheus.serviceMonitor.enabled }}
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "kube-prometheus.prometheus.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
spec:
selector:
matchLabels: {{- include "kube-prometheus.prometheus.matchLabels" . | nindent 6 }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: http
{{- if .Values.prometheus.serviceMonitor.interval }}
interval: {{ .Values.prometheus.serviceMonitor.interval }}
{{- end }}
path: {{ trimSuffix "/" .Values.prometheus.routePrefix }}/metrics
{{- if .Values.prometheus.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "tc.v1.common.tplvalues.render" ( dict "value" .Values.prometheus.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.prometheus.serviceMonitor.relabelings }}
relabelings: {{- toYaml .Values.prometheus.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,41 +0,0 @@
{{- if .Values.prometheus.enabled -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "kube-prometheus.prometheus.fullname" . }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
rules:
- apiGroups:
- ""
resources:
- nodes/metrics
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- nodes
- nodes/proxy
- services
- endpoints
- pods
verbs:
- "get"
- "list"
- "watch"
- apiGroups:
- extensions
- "networking.k8s.io"
resources:
- ingresses
verbs:
- get
- list
- watch
- nonResourceURLs:
- "/metrics"
verbs:
- "get"
{{- end }}

View File

@@ -1,15 +0,0 @@
{{- if .Values.prometheus.enabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "kube-prometheus.prometheus.fullname" . }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "kube-prometheus.prometheus.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "kube-prometheus.prometheus.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- end }}

View File

@@ -1,12 +0,0 @@
{{- if and .Values.prometheus.enabled .Values.prometheus.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "kube-prometheus.prometheus.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "kube-prometheus.prometheus.labels" . | nindent 4 }}
{{- if index .Values.prometheus.serviceAccount "annotations" }}
annotations: {{- include "tc.v1.common.tplvalues.render" (dict "value" .Values.prometheus.serviceAccount.annotations "context" $) | nindent 4 }}
{{- end }}
{{- include "kube-prometheus.imagePullSecrets" . }}
{{- end }}

File diff suppressed because it is too large Load Diff