From 15629d4ce1ee08b3162827ad5a1d042769dd57bf Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 29 Jan 2024 00:32:24 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/prometheus/16.3.9/CHANGELOG.md | 99 + enterprise/prometheus/16.3.9/Chart.yaml | 53 + enterprise/prometheus/16.3.9/LICENSE | 106 + enterprise/prometheus/16.3.9/README.md | 28 + enterprise/prometheus/16.3.9/app-changelog.md | 9 + enterprise/prometheus/16.3.9/app-readme.md | 8 + .../16.3.9/charts/common-17.2.29.tgz | Bin 0 -> 98038 bytes .../charts/kube-state-metrics-6.1.14.tgz | Bin 0 -> 102834 bytes .../16.3.9/charts/node-exporter-6.1.14.tgz | Bin 0 -> 102557 bytes enterprise/prometheus/16.3.9/ix_values.yaml | 1374 +++++++++++++ enterprise/prometheus/16.3.9/questions.yaml | 1798 +++++++++++++++++ .../prometheus/16.3.9/templates/NOTES.txt | 1 + .../prometheus/16.3.9/templates/_helpers.tpl | 210 ++ .../templates/alertmanager/_alertmanager.tpl | 174 ++ .../templates/alertmanager/secrets.yaml | 13 + .../alertmanager/serviceaccount.yaml | 12 + .../alertmanager/servicemonitor.yaml | 26 + .../prometheus/16.3.9/templates/common.yaml | 13 + .../templates/exporters/core-dns/service.yaml | 22 + .../exporters/core-dns/servicemonitor.yaml | 29 + .../kube-apiserver/servicemonitor.yaml | 35 + .../kube-controller-manager/endpoints.yaml | 18 + .../kube-controller-manager/service.yaml | 25 + .../servicemonitor.yaml | 40 + .../exporters/kube-scheduler/endpoints.yaml | 18 + .../exporters/kube-scheduler/service.yaml | 25 + .../kube-scheduler/servicemonitor.yaml | 40 + .../exporters/kubelet/servicemonitor.yaml | 85 + .../prometheus/_additionalPrometheusRules.tpl | 15 + .../prometheus/_additionalScrapeJobs.tpl | 13 + .../templates/prometheus/_prometheus.tpl | 363 ++++ .../templates/prometheus/_servicemonitor.tpl | 29 + .../templates/prometheus/clusterrole.yaml | 41 + .../prometheus/clusterrolebinding.yaml | 15 + .../templates/prometheus/serviceaccount.yaml | 12 + enterprise/prometheus/16.3.9/values.yaml | 0 36 files changed, 4749 insertions(+) create mode 100644 enterprise/prometheus/16.3.9/CHANGELOG.md create mode 100644 enterprise/prometheus/16.3.9/Chart.yaml create mode 100644 enterprise/prometheus/16.3.9/LICENSE create mode 100644 enterprise/prometheus/16.3.9/README.md create mode 100644 enterprise/prometheus/16.3.9/app-changelog.md create mode 100644 enterprise/prometheus/16.3.9/app-readme.md create mode 100644 enterprise/prometheus/16.3.9/charts/common-17.2.29.tgz create mode 100644 enterprise/prometheus/16.3.9/charts/kube-state-metrics-6.1.14.tgz create mode 100644 enterprise/prometheus/16.3.9/charts/node-exporter-6.1.14.tgz create mode 100644 enterprise/prometheus/16.3.9/ix_values.yaml create mode 100644 enterprise/prometheus/16.3.9/questions.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/NOTES.txt create mode 100644 enterprise/prometheus/16.3.9/templates/_helpers.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/alertmanager/_alertmanager.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/alertmanager/secrets.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/alertmanager/serviceaccount.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/alertmanager/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/common.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/core-dns/service.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/core-dns/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-apiserver/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/endpoints.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/service.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/endpoints.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/service.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/exporters/kubelet/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/_additionalPrometheusRules.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/_additionalScrapeJobs.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/_prometheus.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/_servicemonitor.tpl create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/clusterrole.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/clusterrolebinding.yaml create mode 100644 enterprise/prometheus/16.3.9/templates/prometheus/serviceaccount.yaml create mode 100644 enterprise/prometheus/16.3.9/values.yaml diff --git a/enterprise/prometheus/16.3.9/CHANGELOG.md b/enterprise/prometheus/16.3.9/CHANGELOG.md new file mode 100644 index 00000000000..8813a235424 --- /dev/null +++ b/enterprise/prometheus/16.3.9/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [prometheus-16.3.9](https://github.com/truecharts/charts/compare/prometheus-16.3.8...prometheus-16.3.9) (2024-01-29) + +### Chore + + + +- update container image bitnami/alertmanager to 0.26.0[@243bc77](https://github.com/243bc77) by renovate ([#17578](https://github.com/truecharts/charts/issues/17578)) + + +## [prometheus-16.3.8](https://github.com/truecharts/charts/compare/prometheus-16.3.7...prometheus-16.3.8) (2024-01-27) + +### Chore + + + +- update helm general non-major by renovate ([#17525](https://github.com/truecharts/charts/issues/17525)) + + +## [prometheus-16.3.7](https://github.com/truecharts/charts/compare/prometheus-16.3.6...prometheus-16.3.7) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [prometheus-16.3.6](https://github.com/truecharts/charts/compare/prometheus-16.3.5...prometheus-16.3.6) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [prometheus-16.3.5](https://github.com/truecharts/charts/compare/prometheus-16.3.4...prometheus-16.3.5) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [prometheus-16.3.4](https://github.com/truecharts/charts/compare/prometheus-16.3.3...prometheus-16.3.4) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [prometheus-16.3.3](https://github.com/truecharts/charts/compare/prometheus-16.3.2...prometheus-16.3.3) (2024-01-21) + +### Chore + + + +- update container image bitnami/prometheus to 2.49.1[@3b4ac1c](https://github.com/3b4ac1c) by renovate ([#17331](https://github.com/truecharts/charts/issues/17331)) + + +## [prometheus-16.3.2](https://github.com/truecharts/charts/compare/prometheus-16.3.1...prometheus-16.3.2) (2024-01-21) + +### Chore + + + +- update container image bitnami/alertmanager to 0.26.0[@29fe762](https://github.com/29fe762) by renovate ([#17323](https://github.com/truecharts/charts/issues/17323)) + + +## [prometheus-16.3.1](https://github.com/truecharts/charts/compare/prometheus-16.3.0...prometheus-16.3.1) (2024-01-19) + +### Chore + + + +- update container image bitnami/prometheus to v2.49.1[@d6184e1](https://github.com/d6184e1) by renovate ([#17299](https://github.com/truecharts/charts/issues/17299)) + + +## [prometheus-16.3.0](https://github.com/truecharts/charts/compare/prometheus-16.2.3...prometheus-16.3.0) (2024-01-15) + +### Chore + + + +- update container image bitnami/prometheus to v2.49.0[@7102c3a](https://github.com/7102c3a) by renovate ([#17283](https://github.com/truecharts/charts/issues/17283)) + + diff --git a/enterprise/prometheus/16.3.9/Chart.yaml b/enterprise/prometheus/16.3.9/Chart.yaml new file mode 100644 index 00000000000..d2c58bf6f84 --- /dev/null +++ b/enterprise/prometheus/16.3.9/Chart.yaml @@ -0,0 +1,53 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: metrics + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: enterprise +apiVersion: v2 +appVersion: 2.49.1 +dependencies: + - name: common + version: 17.2.29 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: node-exporter + version: 6.1.14 + repository: https://deps.truecharts.org + condition: exporters.enabled,exporters.node-exporter.enabled + alias: "" + tags: [] + import-values: [] + - name: kube-state-metrics + version: 6.1.14 + repository: https://deps.truecharts.org + condition: exporters.enabled,exporters.kube-state-metrics.enabled + alias: "" + tags: [] + import-values: [] +deprecated: false +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 +icon: https://truecharts.org/img/hotlink-ok/chart-icons/prometheus.png +keywords: + - metrics +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: prometheus +sources: + - https://github.com/prometheus-community/helm-charts + - https://github.com/prometheus-operator/kube-prometheus + - https://github.com/truecharts/charts/tree/master/charts/enterprise/prometheus + - https://quay.io/thanos/thanos + - https://hub.docker.com/r/bitnami/prometheus + - https://hub.docker.com/r/bitnami/alertmanager +type: application +version: 16.3.9 diff --git a/enterprise/prometheus/16.3.9/LICENSE b/enterprise/prometheus/16.3.9/LICENSE new file mode 100644 index 00000000000..c30fceb4a5b --- /dev/null +++ b/enterprise/prometheus/16.3.9/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Prometheus" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/enterprise/prometheus/16.3.9/README.md b/enterprise/prometheus/16.3.9/README.md new file mode 100644 index 00000000000..fee81aacfbc --- /dev/null +++ b/enterprise/prometheus/16.3.9/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/enterprise/prometheus) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/enterprise/prometheus/16.3.9/app-changelog.md b/enterprise/prometheus/16.3.9/app-changelog.md new file mode 100644 index 00000000000..0cfcc5cf1f6 --- /dev/null +++ b/enterprise/prometheus/16.3.9/app-changelog.md @@ -0,0 +1,9 @@ + + +## [prometheus-16.3.9](https://github.com/truecharts/charts/compare/prometheus-16.3.8...prometheus-16.3.9) (2024-01-29) + +### Chore + + + +- update container image bitnami/alertmanager to 0.26.0[@243bc77](https://github.com/243bc77) by renovate ([#17578](https://github.com/truecharts/charts/issues/17578)) \ No newline at end of file diff --git a/enterprise/prometheus/16.3.9/app-readme.md b/enterprise/prometheus/16.3.9/app-readme.md new file mode 100644 index 00000000000..93f59634eaa --- /dev/null +++ b/enterprise/prometheus/16.3.9/app-readme.md @@ -0,0 +1,8 @@ +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. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/prometheus](https://truecharts.org/charts/enterprise/prometheus) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/enterprise/prometheus/16.3.9/charts/common-17.2.29.tgz b/enterprise/prometheus/16.3.9/charts/common-17.2.29.tgz new file mode 100644 index 0000000000000000000000000000000000000000..32aa9351f147fbd4659b7948d068b57287f74904 GIT binary patch literal 98038 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 literal 0 HcmV?d00001 diff --git a/enterprise/prometheus/16.3.9/charts/kube-state-metrics-6.1.14.tgz b/enterprise/prometheus/16.3.9/charts/kube-state-metrics-6.1.14.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0c1da9c5b543a3e848540d41f754c0f89cf18514 GIT binary patch literal 102834 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 literal 0 HcmV?d00001 diff --git a/enterprise/prometheus/16.3.9/ix_values.yaml b/enterprise/prometheus/16.3.9/ix_values.yaml new file mode 100644 index 00000000000..d05c10cee1b --- /dev/null +++ b/enterprise/prometheus/16.3.9/ix_values.yaml @@ -0,0 +1,1374 @@ +image: + repository: bitnami/prometheus + tag: 2.49.1@sha256:3b4ac1c71ad60cb65587b6dcc64181f0d9693d81869224a1013953299234796f +thanosImage: + repository: quay.io/thanos/thanos + tag: v0.33.0@sha256:f7177edda27b5bc08e363187ffb093a9b7fbedbb15a2f2d0e007216cf42a9525 +alertmanagerImage: + repository: bitnami/alertmanager + tag: 0.26.0@sha256:243bc77a7b9ea988296a6c156393a8959f0db51e897017c6d309cf16cca5e630 +global: + labels: {} +workload: + main: + enabled: false + podSpec: + containers: + main: + enabled: false + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + +configmap: + grafana-datasource: + enabled: "{{ if .Values.grafana.datasource.enabled }}true{{ else }}false{{ end }}" + labels: + grafana_datasources: "1" + data: + datasource.yaml: |- + apiVersion: 1 + datasources: + - name: Prometheus + type: prometheus + uid: {{ .Values.grafana.datasource.uid | default "prometheus" }} + url: http://{{ include "tc.v1.common.lib.chart.names.fullname" $ }}.{{ include "tc.v1.common.lib.metadata.namespace" (dict "rootCtx" $ "objectData" . "caller" "Configmap") }}:{{ .Values.service.main.ports.main.port }} + access: proxy + isDefault: {{ .Values.grafana.datasource.default | default true }} + jsonData: + httpMethod: {{ .Values.grafana.datasource.httpMethod | default "POST" }} + timeInterval: {{ .Values.grafana.datasource.scrapeInterval | default "30s" }} + {{- if .Values.grafana.datasource.timeout }} + timeout: {{ .Values.grafana.datasource.timeout }} + {{- end }} + +grafana: + datasource: + enabled: true + default: true + httpMethod: "POST" + scrapeInterval: "30s" + uid: "prometheus" + +service: + main: + selectorLabels: + app.kubernetes.io/name: prometheus + prometheus: '{{ template "kube-prometheus.prometheus.fullname" . }}' + ports: + main: + port: 9090 + targetPort: 9090 + protocol: http + alertmanager: + enabled: true + selectorLabels: + app.kubernetes.io/name: alertmanager + alertmanager: '{{ template "kube-prometheus.alertmanager.fullname" . }}' + ports: + alertmanager: + enabled: true + port: 9093 + targetPort: 9093 + protocol: http + thanos: + enabled: true + selectorLabels: + app.kubernetes.io/name: prometheus + prometheus: '{{ template "kube-prometheus.prometheus.fullname" . }}' + ports: + thanos: + enabled: true + port: 10901 + targetPort: 10901 + protocol: http +ingress: + main: + enabled: false + alertmanager: + enabled: false + thanos: + enabled: false +#### +## Operator Config +#### +env: + PROMETHEUS_CONFIG_RELOADER: + configMapKeyRef: + name: prometheus-operator-config + key: prometheus-config-reloader +podOptions: + automountServiceAccountToken: true +rbac: + main: + enabled: true + primary: true + clusterWide: true + rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - apiGroups: + - apiextensions.k8s.io + resourceNames: + - alertmanagers.monitoring.coreos.com + - podmonitors.monitoring.coreos.com + - prometheuses.monitoring.coreos.com + - prometheusrules.monitoring.coreos.com + - servicemonitors.monitoring.coreos.com + - thanosrulers.monitoring.coreos.com + - probes.monitoring.coreos.com + resources: + - customresourcedefinitions + verbs: + - get + - update + - apiGroups: + - monitoring.coreos.com + resources: + - alertmanagers + - alertmanagers/finalizers + - alertmanagerconfigs + - prometheuses + - prometheuses/finalizers + - thanosrulers + - thanosrulers/finalizers + - servicemonitors + - podmonitors + - probes + - prometheusrules + verbs: + - "*" + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - "*" + - apiGroups: + - "" + resources: + - configmaps + - secrets + verbs: + - "*" + - apiGroups: + - "" + resources: + - pods + verbs: + - list + - delete + - apiGroups: + - "" + resources: + - services + - services/finalizers + - endpoints + verbs: + - get + - create + - update + - delete + - apiGroups: + - "" + resources: + - nodes + verbs: + - list + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - watch +# -- The service account the pods will use to interact with the Kubernetes API +serviceAccount: + main: + enabled: true + primary: true +securityContext: + readOnlyRootFilesystem: false +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + custom: true + spec: + httpGet: + path: "/metrics" + port: promop + scheme: HTTP + # -- Redainess probe configuration + # @default -- See below + readiness: + custom: true + spec: + httpGet: + path: "/metrics" + port: promop + scheme: HTTP + # -- Startup probe configuration + # @default -- See below + startup: + custom: true + spec: + httpGet: + path: "/metrics" + port: promop + scheme: HTTP +operator: + ## Create a servicemonitor for the operator + ## + serviceMonitor: + ## @param operator.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus Operator + ## + enabled: false + ## @param operator.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default) + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param operator.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param operator.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] + ## Prometheus Configmap-reload image to use for reloading configmaps + ## defaults to Bitnami Prometheus Operator (ref: https://hub.docker.com/r/tccr.io/truecharts/prometheus-operator/tags/) + ## + prometheusConfigReloader: + containerSecurityContext: + enabled: true + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: + - ALL + livenessProbe: + enabled: true + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 + readinessProbe: + enabled: true + initialDelaySeconds: 15 + periodSeconds: 20 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 +#### +## Prometheus Config (Spawned by Operator) +#### + +## Deploy a Prometheus instance +## +prometheus: + ## @param prometheus.enabled Deploy Prometheus to the cluster + ## + enabled: true + ## Bitnami Prometheus image version + ## ref: https://hub.docker.com/r/tccr.io/truecharts/prometheus/tags/ + ## @param prometheus.image.registry Prometheus image registry + ## @param prometheus.image.repository Prometheus image repository + ## @param prometheus.image.tag Prometheus Image tag (immutable tags are recommended) + ## @param prometheus.image.pullSecrets Specify docker-registry secret names as an array + ## + ## Service account for Prometheus to use. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ + ## + serviceAccount: + ## @param prometheus.serviceAccount.create Specify whether to create a ServiceAccount for Prometheus + ## + create: true + ## @param prometheus.serviceAccount.name The name of the ServiceAccount to create + ## If not set and create is true, a name is generated using the kube-prometheus.prometheus.fullname template + name: "" + ## @param prometheus.serviceAccount.annotations Additional annotations for created Prometheus ServiceAccount + ## annotations: + ## eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/prometheus + ## + annotations: {} + ## Prometheus pods' Security Context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod + ## @param prometheus.podSecurityContext.enabled Enable security context + ## @param prometheus.podSecurityContext.runAsUser User ID for the container + ## @param prometheus.podSecurityContext.fsGroup Group ID for the container filesystem + ## + podSecurityContext: + enabled: true + runAsUser: 1001 + fsGroup: 1001 + ## Prometheus containers' Security Context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param prometheus.containerSecurityContext.enabled Enable container security context + ## @param prometheus.containerSecurityContext.readOnlyRootFilesystem Mount / (root) as a readonly filesystem + ## @param prometheus.containerSecurityContext.allowPrivilegeEscalation Switch privilegeEscalation possibility on or off + ## @param prometheus.containerSecurityContext.runAsNonRoot Force the container to run as a non root user + ## @param prometheus.containerSecurityContext.capabilities.drop [array] Linux Kernel capabilities which should be dropped + ## + containerSecurityContext: + enabled: true + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: + - ALL + serviceMonitor: + ## @param prometheus.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus itself + ## + enabled: true + ## @param prometheus.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default) + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param prometheus.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param prometheus.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] + ## @param prometheus.externalUrl External URL used to access Prometheus + ## If not creating an ingress but still exposing the service some other way (like a proxy) + ## let Prometheus know what its external URL is so that it can properly create links + ## externalUrl: https://prometheus.example.com + ## + externalUrl: "" + ## @param prometheus.resources CPU/Memory resource requests/limits for node + ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ + ## + resources: {} + ## @param prometheus.podAffinityPreset Prometheus Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param prometheus.podAntiAffinityPreset Prometheus Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## Node affinity preset + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param prometheus.nodeAffinityPreset.type Prometheus Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param prometheus.nodeAffinityPreset.key Prometheus Node label key to match Ignored if `affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param prometheus.nodeAffinityPreset.values Prometheus Node label values to match. Ignored if `affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param prometheus.affinity Prometheus Affinity for pod assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: prometheus.podAffinityPreset, prometheus.podAntiAffinityPreset, and prometheus.nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param prometheus.nodeSelector Prometheus Node labels for pod assignment + ## ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param prometheus.tolerations Prometheus Tolerations for pod assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## @param prometheus.scrapeInterval Interval between consecutive scrapes + ## + scrapeInterval: "15s" + ## @param prometheus.evaluationInterval Interval between consecutive evaluations + ## + evaluationInterval: "30s" + ## @param prometheus.listenLocal ListenLocal makes the Prometheus server listen on loopback + ## + listenLocal: false + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param prometheus.livenessProbe.enabled Turn on and off liveness probe + ## @param prometheus.livenessProbe.path Path of the HTTP service for checking the healthy state + ## @param prometheus.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated + ## @param prometheus.livenessProbe.periodSeconds How often to perform the probe + ## @param prometheus.livenessProbe.timeoutSeconds When the probe times out + ## @param prometheus.livenessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param prometheus.livenessProbe.successThreshold Minimum consecutive successes for the probe + ## + livenessProbe: + enabled: true + path: /-/healthy + initialDelaySeconds: 0 + failureThreshold: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + ## Configure extra options for readiness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param prometheus.readinessProbe.enabled Turn on and off readiness probe + ## @param prometheus.readinessProbe.path Path of the HTTP service for checking the ready state + ## @param prometheus.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated + ## @param prometheus.readinessProbe.periodSeconds How often to perform the probe + ## @param prometheus.readinessProbe.timeoutSeconds When the probe times out + ## @param prometheus.readinessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param prometheus.readinessProbe.successThreshold Minimum consecutive successes for the probe + ## + readinessProbe: + enabled: true + path: /-/ready + initialDelaySeconds: 0 + failureThreshold: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + ## @param prometheus.enableAdminAPI Enable Prometheus adminitrative API + ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis + ## + enableAdminAPI: false + ## @param prometheus.enableFeatures Enable access to Prometheus disabled features. + ## ref: https://prometheus.io/docs/prometheus/latest/disabled_features/ + ## + enableFeatures: [] + ## @param prometheus.alertingEndpoints Alertmanagers to which alerts will be sent + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerendpoints + ## + alertingEndpoints: [] + ## @param prometheus.externalLabels External labels to add to any time series or alerts when communicating with external systems + ## + externalLabels: {} + ## @param prometheus.replicaExternalLabelName Name of the external label used to denote replica name + ## + replicaExternalLabelName: "" + ## @param prometheus.replicaExternalLabelNameClear Clear external label used to denote replica name + ## + replicaExternalLabelNameClear: false + ## @param prometheus.routePrefix Prefix used to register routes, overriding externalUrl route + ## Useful for proxies that rewrite URLs. + ## + routePrefix: / + ## @param prometheus.prometheusExternalLabelName Name of the external label used to denote Prometheus instance name + ## + prometheusExternalLabelName: "" + ## @param prometheus.prometheusExternalLabelNameClear Clear external label used to denote Prometheus instance name + ## + prometheusExternalLabelNameClear: false + ## @param prometheus.secrets Secrets that should be mounted into the Prometheus Pods + ## + secrets: [] + ## @param prometheus.configMaps ConfigMaps that should be mounted into the Prometheus Pods + ## + configMaps: [] + ## @param prometheus.querySpec The query command line flags when starting Prometheus + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#queryspec + ## + querySpec: {} + ## @param prometheus.ruleNamespaceSelector Namespaces to be selected for PrometheusRules discovery + ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage + ## + ruleNamespaceSelector: {} + ## @param prometheus.ruleSelector PrometheusRules to be selected for target discovery + ## If {}, select all ServiceMonitors + ## + ruleSelector: {} + ## @param prometheus.serviceMonitorSelector ServiceMonitors to be selected for target discovery + ## If {}, select all ServiceMonitors + ## + serviceMonitorSelector: {} + ## @param prometheus.matchLabels Matchlabels + ## + matchLabels: {} + ## @param prometheus.serviceMonitorNamespaceSelector Namespaces to be selected for ServiceMonitor discovery + ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage + ## + serviceMonitorNamespaceSelector: {} + ## @param prometheus.podMonitorSelector PodMonitors to be selected for target discovery. + ## If {}, select all PodMonitors + ## + podMonitorSelector: {} + ## @param prometheus.podMonitorNamespaceSelector Namespaces to be selected for PodMonitor discovery + ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage + ## + podMonitorNamespaceSelector: {} + ## @param prometheus.probeSelector Probes to be selected for target discovery. + ## If {}, select all Probes + ## + probeSelector: {} + ## @param prometheus.probeNamespaceSelector Namespaces to be selected for Probe discovery + ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage + ## + probeNamespaceSelector: {} + ## @param prometheus.scrapeConfigSelector The scrapeConfigs to be selected for target discovery. + ## If {}, select all scrapeConfigs + ## + scrapeConfigSelector: {} + ## @param prometheus.scrapeConfigNamespaceSelector Namespaces to be selected for scrapeConfig discovery. + ## If {}, select all namespaces. + ## If nil, select own namespace. + scrapeConfigNamespaceSelector: {} + ## @param prometheus.retention Metrics retention days + ## + retention: 31d + ## @param prometheus.retentionSize Maximum size of metrics + ## + retentionSize: "" + ## @param prometheus.disableCompaction Disable the compaction of the Prometheus TSDB + ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec + ## ref: https://prometheus.io/docs/prometheus/latest/storage/#compaction + ## + disableCompaction: false + ## @param prometheus.walCompression Enable compression of the write-ahead log using Snappy + ## + walCompression: false + ## @param prometheus.paused If true, the Operator won't process any Prometheus configuration changes + ## + paused: false + ## @param prometheus.replicaCount Number of Prometheus replicas desired + ## + replicaCount: 1 + ## @param prometheus.logLevel Log level for Prometheus + ## + logLevel: info + ## @param prometheus.logFormat Log format for Prometheus + ## + logFormat: logfmt + ## @param prometheus.podMetadata [object] Standard object's metadata + ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata + ## + podMetadata: + ## labels: + ## app: prometheus + ## k8s-app: prometheus + ## + labels: {} + annotations: {} + ## @param prometheus.remoteRead The remote_read spec configuration for Prometheus + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotereadspec + ## remoteRead: + ## - url: http://remote1/read + ## + remoteRead: [] + ## @param prometheus.remoteWrite The remote_write spec configuration for Prometheus + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotewritespec + ## remoteWrite: + ## - url: http://remote1/push + ## + remoteWrite: [] + ## @param prometheus.storageSpec Prometheus StorageSpec for persistent data + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md + ## + storageSpec: {} + ## Prometheus persistence parameters + ## + persistence: + ## @param prometheus.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect. + ## + enabled: true + ## @param prometheus.persistence.storageClass Persistent Volume Storage Class + ## If defined, storageClassName: + ## 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. + ## + storageClass: "" + ## @param prometheus.persistence.accessModes Persistent Volume Access Modes + ## + accessModes: + - ReadWriteOnce + ## @param prometheus.persistence.size Persistent Volume Size + ## + size: 999Gi + ## @param prometheus.priorityClassName Priority class assigned to the Pods + ## + priorityClassName: "" + ## @param prometheus.containers Containers allows injecting additional containers + ## + containers: [] + ## @param prometheus.volumes Volumes allows configuration of additional volumes + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec + ## + volumes: [] + ## @param prometheus.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec + ## + volumeMounts: [] + ## @param prometheus.additionalPrometheusRules PrometheusRule defines recording and alerting rules for a Prometheus instance. + additionalPrometheusRules: [] + ## - name: custom-recording-rules + ## groups: + ## - name: sum_node_by_job + ## rules: + ## - record: job:kube_node_labels:sum + ## expr: sum(kube_node_labels) by (job) + ## - name: sum_prometheus_config_reload_by_pod + ## rules: + ## - record: job:prometheus_config_last_reload_successful:sum + ## expr: sum(prometheus_config_last_reload_successful) by (pod) + ## - name: custom-alerting-rules + ## groups: + ## - name: prometheus-config + ## rules: + ## - alert: PrometheusConfigurationReload + ## expr: prometheus_config_last_reload_successful > 0 + ## for: 1m + ## labels: + ## severity: error + ## annotations: + ## summary: "Prometheus configuration reload (instance {{ $labels.instance }})" + ## description: "Prometheus configuration reload error\n VALUE = {{ $value }}\n LABELS: {{ $labels }}" + ## - name: custom-node-exporter-alerting-rules + ## rules: + ## - alert: PhysicalComponentTooHot + ## expr: node_hwmon_temp_celsius > 75 + ## for: 5m + ## labels: + ## severity: warning + ## annotations: + ## summary: "Physical component too hot (instance {{ $labels.instance }})" + ## description: "Physical hardware component too hot\n VALUE = {{ $value }}\n LABELS: {{ $labels }}" + ## - alert: NodeOvertemperatureAlarm + ## expr: node_hwmon_temp_alarm == 1 + ## for: 5m + ## labels: + ## severity: critical + ## annotations: + ## summary: "Node overtemperature alarm (instance {{ $labels.instance }})" + ## description: "Physical node temperature alarm triggered\n VALUE = {{ $value }}\n LABELS: {{ $labels }}" + ## + ## Note that the prometheus will fail to provision if the correct secret does not exist. + ## @param prometheus.additionalScrapeConfigs.enabled Enable additional scrape configs + ## @param prometheus.additionalScrapeConfigs.type Indicates if the cart should use external additional scrape configs or internal configs + ## @param prometheus.additionalScrapeConfigs.external.name Name of the secret that Prometheus should use for the additional external scrape configuration + ## @param prometheus.additionalScrapeConfigs.external.key Name of the key inside the secret to be used for the additional external scrape configuration + ## @param prometheus.additionalScrapeConfigs.internal.jobList A list of Prometheus scrape jobs + ## + additionalScrapeConfigs: + enabled: false + type: external + external: + ## Name of the secret that Prometheus should use for the additional scrape configuration + ## + name: "" + ## Name of the key inside the secret to be used for the additional scrape configuration. + ## + key: "" + internal: + jobList: [] + ## @param prometheus.additionalScrapeConfigsExternal.enabled Deprecated: Enable additional scrape configs that are managed externally to this chart + ## @param prometheus.additionalScrapeConfigsExternal.name Deprecated: Name of the secret that Prometheus should use for the additional scrape configuration + ## @param prometheus.additionalScrapeConfigsExternal.key Deprecated: Name of the key inside the secret to be used for the additional scrape configuration + ## + additionalScrapeConfigsExternal: + enabled: false + name: "" + key: "" + ## Enable additional Prometheus alert relabel configs that are managed externally to this chart + ## Note that the prometheus will fail to provision if the correct secret does not exist. + ## @param prometheus.additionalAlertRelabelConfigsExternal.enabled Enable additional Prometheus alert relabel configs that are managed externally to this chart + ## @param prometheus.additionalAlertRelabelConfigsExternal.name Name of the secret that Prometheus should use for the additional Prometheus alert relabel configuration + ## @param prometheus.additionalAlertRelabelConfigsExternal.key Name of the key inside the secret to be used for the additional Prometheus alert relabel configuration + ## + additionalAlertRelabelConfigsExternal: + enabled: false + name: "" + key: "" + ## Thanos sidecar container configuration + ## + thanos: + ## @param prometheus.thanos.create Create a Thanos sidecar container + ## + create: false + ## Bitnami Thanos image + ## ref: https://hub.docker.com/r/tccr.io/truecharts/thanos/tags/ + ## @param prometheus.thanos.image.registry Thanos image registry + ## @param prometheus.thanos.image.repository Thanos image name + ## @param prometheus.thanos.image.tag Thanos image tag + ## @param prometheus.thanos.image.pullPolicy Thanos image pull policy + ## @param prometheus.thanos.image.pullSecrets Specify docker-registry secret names as an array + ## + ## Thanos Sidecar container's securityContext + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param prometheus.thanos.containerSecurityContext.enabled Enable container security context + ## @param prometheus.thanos.containerSecurityContext.readOnlyRootFilesystem mount / (root) as a readonly filesystem + ## @param prometheus.thanos.containerSecurityContext.allowPrivilegeEscalation Switch privilegeEscalation possibility on or off + ## @param prometheus.thanos.containerSecurityContext.runAsNonRoot Force the container to run as a non root user + ## @param prometheus.thanos.containerSecurityContext.capabilities.drop [array] Linux Kernel capabilities which should be dropped + ## + containerSecurityContext: + enabled: true + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: + - ALL + ## @param prometheus.thanos.prometheusUrl Override default prometheus url "http://localhost:9090" + ## + prometheusUrl: "" + ## @param prometheus.thanos.extraArgs Additional arguments passed to the thanos sidecar container + ## extraArgs: + ## - --log.level=debug + ## - --tsdb.path=/data/ + ## + extraArgs: [] + ## @param prometheus.thanos.objectStorageConfig Support mounting a Secret for the objectStorageConfig of the sideCar container. + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/thanos.md + ## objectStorageConfig: + ## secretName: thanos-objstore-config + ## secretKey: thanos.yaml + ## + objectStorageConfig: {} + ## ref: https://github.com/thanos-io/thanos/blob/main/docs/components/sidecar.md + ## @param prometheus.thanos.extraVolumeMounts Additional volumeMounts from `prometheus.volumes` for thanos sidecar container + ## extraVolumeMounts: + ## - name: my-secret-volume + ## mountPath: /etc/thanos/secrets/my-secret + ## + extraVolumeMounts: [] + ## Thanos sidecar container resource requests and limits. + ## ref: http://kubernetes.io/docs/user-guide/compute-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:'. + ## @param prometheus.thanos.resources.limits The resources limits for the Thanos sidecar container + ## @param prometheus.thanos.resources.requests The resources requests for the Thanos sidecar container + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi + requests: {} + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param prometheus.thanos.livenessProbe.enabled Turn on and off liveness probe + ## @param prometheus.thanos.livenessProbe.path Path of the HTTP service for checking the healthy state + ## @param prometheus.thanos.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated + ## @param prometheus.thanos.livenessProbe.periodSeconds How often to perform the probe + ## @param prometheus.thanos.livenessProbe.timeoutSeconds When the probe times out + ## @param prometheus.thanos.livenessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param prometheus.thanos.livenessProbe.successThreshold Minimum consecutive successes for the probe + ## + livenessProbe: + enabled: true + path: /-/healthy + initialDelaySeconds: 0 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 120 + successThreshold: 1 + ## Configure extra options for readiness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param prometheus.thanos.readinessProbe.enabled Turn on and off readiness probe + ## @param prometheus.thanos.readinessProbe.path Path of the HTTP service for checking the ready state + ## @param prometheus.thanos.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated + ## @param prometheus.thanos.readinessProbe.periodSeconds How often to perform the probe + ## @param prometheus.thanos.readinessProbe.timeoutSeconds When the probe times out + ## @param prometheus.thanos.readinessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param prometheus.thanos.readinessProbe.successThreshold Minimum consecutive successes for the probe + ## + readinessProbe: + enabled: true + path: /-/ready + initialDelaySeconds: 0 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 120 + successThreshold: 1 + ## Thanos Sidecar Service + ## + service: + ## @param prometheus.thanos.service.type Kubernetes service type + ## + type: ClusterIP + ## @param prometheus.thanos.service.port Thanos service port + ## + port: 10901 + ## @param prometheus.thanos.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` to create headless service by default. + ## Use a "headless" service by default so it returns every pod's IP instead of loadbalancing requests. + ## + clusterIP: None + ## @param prometheus.thanos.service.nodePort Specify the nodePort value for the LoadBalancer and NodePort service types. + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## e.g: + ## nodePort: 30901 + ## + nodePort: "" + ## @param prometheus.thanos.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer` + ## Set the LoadBalancer service type to internal only + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + loadBalancerIP: "" + ## @param prometheus.thanos.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer` + ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## e.g: + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] + ## @param prometheus.thanos.service.annotations Additional annotations for Prometheus service + ## + annotations: {} + ## @param prometheus.thanos.service.extraPorts Additional ports to expose from the Thanos sidecar container + ## extraPorts: + ## - name: http + ## port: 10902 + ## targetPort: http + ## protocol: tcp + ## + extraPorts: [] + ## @param prometheus.portName Port name used for the pods and governing service. This defaults to web + ## + portName: main +#### +## Alert Manager Config +#### + +## @section Alertmanager Parameters + +## Configuration for alertmanager +## ref: https://prometheus.io/docs/alerting/alertmanager/ +## +alertmanager: + ## @param alertmanager.enabled Deploy Alertmanager to the cluster + ## + enabled: true + ## Service account for Alertmanager to use. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ + ## + serviceAccount: + ## @param alertmanager.serviceAccount.create Specify whether to create a ServiceAccount for Alertmanager + ## + create: true + ## @param alertmanager.serviceAccount.name The name of the ServiceAccount to create + ## If not set and create is true, a name is generated using the kube-prometheus.alertmanager.fullname template + name: "" + ## Prometheus Alertmanager pods' Security Context + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod + ## @param alertmanager.podSecurityContext.enabled Enable security context + ## @param alertmanager.podSecurityContext.runAsUser User ID for the container + ## @param alertmanager.podSecurityContext.fsGroup Group ID for the container filesystem + ## + podSecurityContext: + enabled: true + runAsUser: 1001 + fsGroup: 1001 + ## Prometheus Alertmanager container's securityContext + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container + ## @param alertmanager.containerSecurityContext.enabled Enable container security context + ## @param alertmanager.containerSecurityContext.readOnlyRootFilesystem mount / (root) as a readonly filesystem + ## @param alertmanager.containerSecurityContext.allowPrivilegeEscalation Switch privilegeEscalation possibility on or off + ## @param alertmanager.containerSecurityContext.runAsNonRoot Force the container to run as a non root user + ## @param alertmanager.containerSecurityContext.capabilities.drop [array] Linux Kernel capabilities which should be dropped + ## + containerSecurityContext: + enabled: true + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: + - ALL + ## Configure pod disruption budgets for Alertmanager + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget + ## @param alertmanager.podDisruptionBudget.enabled Create a pod disruption budget for Alertmanager + ## @param alertmanager.podDisruptionBudget.minAvailable Minimum number / percentage of pods that should remain scheduled + ## @param alertmanager.podDisruptionBudget.maxUnavailable Maximum number / percentage of pods that may be made unavailable + ## + podDisruptionBudget: + enabled: false + minAvailable: 1 + maxUnavailable: "" + ## If true, create a serviceMonitor for alertmanager + ## + serviceMonitor: + ## @param alertmanager.serviceMonitor.enabled Creates a ServiceMonitor to monitor Alertmanager + ## + enabled: true + ## @param alertmanager.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used. + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param alertmanager.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param alertmanager.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] + ## @param alertmanager.externalUrl External URL used to access Alertmanager + ## e.g: + ## externalUrl: https://alertmanager.example.com + ## + externalUrl: "" + ## @param alertmanager.resources CPU/Memory resource requests/limits for node + ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ + ## + resources: {} + ## @param alertmanager.podAffinityPreset Alertmanager Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAffinityPreset: "" + ## @param alertmanager.podAntiAffinityPreset Alertmanager Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity + ## + podAntiAffinityPreset: soft + ## Node affinity preset + ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity + ## + nodeAffinityPreset: + ## @param alertmanager.nodeAffinityPreset.type Alertmanager Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param alertmanager.nodeAffinityPreset.key Alertmanager Node label key to match Ignored if `affinity` is set. + ## E.g. + ## key: "kubernetes.io/e2e-az-name" + ## + key: "" + ## @param alertmanager.nodeAffinityPreset.values Alertmanager Node label values to match. Ignored if `affinity` is set. + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] + ## @param alertmanager.affinity Alertmanager Affinity for pod assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity + ## Note: alertmanager.podAffinityPreset, alertmanager.podAntiAffinityPreset, and alertmanager.nodeAffinityPreset will be ignored when it's set + ## + affinity: {} + ## @param alertmanager.nodeSelector Alertmanager Node labels for pod assignment + ## ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + ## @param alertmanager.tolerations Alertmanager Tolerations for pod assignment + ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + ## Alertmanager configuration + ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file + ## @param alertmanager.config [object] Alertmanager configuration directive + ## @skip alertmanager.config.route.group_by + ## @skip alertmanager.config.route.routes + ## @skip alertmanager.config.receivers + ## + config: + global: + resolve_timeout: 5m + route: + group_by: + - job + group_wait: 30s + group_interval: 5m + repeat_interval: 12h + receiver: "null" + routes: + - match: + alertname: Watchdog + receiver: "null" + receivers: + - name: "null" + ## @param alertmanager.externalConfig Alertmanager configuration is created externally. If true, `alertmanager.config` is ignored, and a secret will not be created. + ## Alertmanager requires a secret named `alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}` + ## It must contain: + ## alertmanager.yaml: + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting + ## + externalConfig: false + ## @param alertmanager.replicaCount Number of Alertmanager replicas desired + ## + replicaCount: 1 + ## Configure extra options for liveness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param alertmanager.livenessProbe.enabled Turn on and off liveness probe + ## @param alertmanager.livenessProbe.path Path of the HTTP service for checking the healthy state + ## @param alertmanager.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated + ## @param alertmanager.livenessProbe.periodSeconds How often to perform the probe + ## @param alertmanager.livenessProbe.timeoutSeconds When the probe times out + ## @param alertmanager.livenessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param alertmanager.livenessProbe.successThreshold Minimum consecutive successes for the probe + ## + livenessProbe: + enabled: true + path: /-/healthy + initialDelaySeconds: 0 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 120 + successThreshold: 1 + ## Configure extra options for readiness probe + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes + ## @param alertmanager.readinessProbe.enabled Turn on and off readiness probe + ## @param alertmanager.readinessProbe.path Path of the HTTP service for checking the ready state + ## @param alertmanager.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated + ## @param alertmanager.readinessProbe.periodSeconds How often to perform the probe + ## @param alertmanager.readinessProbe.timeoutSeconds When the probe times out + ## @param alertmanager.readinessProbe.failureThreshold Minimum consecutive failures for the probe + ## @param alertmanager.readinessProbe.successThreshold Minimum consecutive successes for the probe + ## + readinessProbe: + enabled: true + path: /-/ready + initialDelaySeconds: 0 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 120 + successThreshold: 1 + ## @param alertmanager.logLevel Log level for Alertmanager + ## + logLevel: info + ## @param alertmanager.logFormat Log format for Alertmanager + ## + logFormat: logfmt + ## @param alertmanager.podMetadata [object] Standard object's metadata. + ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata + ## + podMetadata: + labels: {} + annotations: {} + ## @param alertmanager.secrets Secrets that should be mounted into the Alertmanager Pods + ## + secrets: [] + ## @param alertmanager.configMaps ConfigMaps that should be mounted into the Alertmanager Pods + ## + configMaps: [] + ## @param alertmanager.retention Metrics retention days + ## + retention: 240h + ## @param alertmanager.storageSpec Alertmanager StorageSpec for persistent data + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md + ## + storageSpec: {} + ## Alertmanager persistence parameters + ## + persistence: + ## @param alertmanager.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect. + ## If you want to use this configuration make sure the storageSpec is not provided. + ## + enabled: true + ## @param alertmanager.persistence.storageClass Persistent Volume Storage Class + ## If defined, storageClassName: + ## 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. + ## + storageClass: "" + ## @param alertmanager.persistence.accessModes Persistent Volume Access Modes + ## + accessModes: + - ReadWriteOnce + ## @param alertmanager.persistence.size Persistent Volume Size + ## + size: 999Gi + ## @param alertmanager.paused If true, the Operator won't process any Alertmanager configuration changes + ## + paused: false + ## @param alertmanager.listenLocal ListenLocal makes the Alertmanager server listen on loopback + ## + listenLocal: false + ## @param alertmanager.containers Containers allows injecting additional containers + ## + containers: [] + ## @param alertmanager.volumes Volumes allows configuration of additional volumes. Evaluated as a template + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec + ## + volumes: [] + ## @param alertmanager.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/pi.md#alertmanagerspec + ## + volumeMounts: [] + ## @param alertmanager.priorityClassName Priority class assigned to the Pods + ## + priorityClassName: "" + ## @param alertmanager.additionalPeers AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster + ## + additionalPeers: [] + ## @param alertmanager.routePrefix Prefix used to register routes, overriding externalUrl route + ## Useful for proxies that rewrite URLs. + ## + routePrefix: / + ## @param alertmanager.portName Port name used for the pods and governing service. This defaults to web + ## + portName: alertmanager + ## @param alertmanager.configNamespaceSelector AlertmanagerConfigs to be selected for to merge and configure Alertmanager with. This defaults to {} + ## + configNamespaceSelector: {} + ## @param alertmanager.configSelector Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace. This defaults to {} + ## + configSelector: {} +#### +## Exporters +#### + +## @section Exporters + +## Exporters +## +exporters: + node-exporter: + ## @param exporters.node-exporter.enabled Enable node-exporter + ## + enabled: true + kube-state-metrics: + ## @param exporters.kube-state-metrics.enabled Enable kube-state-metrics + ## + enabled: true +## @param kube-state-metrics [object] Node Exporter deployment configuration +## +kube-state-metrics: + serviceMonitor: + enabled: true + honorLabels: true +## Component scraping for kubelet and kubelet hosted cAdvisor +## +kubelet: + ## @param kubelet.enabled Create a ServiceMonitor to scrape kubelet service + ## + enabled: true + ## @param kubelet.namespace Namespace where kubelet service is deployed. Related configuration `operator.kubeletService.namespace` + ## + namespace: kube-system + serviceMonitor: + ## @param kubelet.serviceMonitor.https Enable scraping of the kubelet over HTTPS + ## + https: true + ## @param kubelet.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default) + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param kubelet.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param kubelet.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] + ## @param kubelet.serviceMonitor.cAdvisorMetricRelabelings Metric relabeling for scraping cAdvisor + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + cAdvisorMetricRelabelings: [] + ## @param kubelet.serviceMonitor.cAdvisorRelabelings Relabel configs for scraping cAdvisor + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + cAdvisorRelabelings: [] +## Component scraping the kube-apiserver +## +kubeApiServer: + ## @param kubeApiServer.enabled Create a ServiceMonitor to scrape kube-apiserver service + ## + enabled: true + serviceMonitor: + ## @param kubeApiServer.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used. + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param kubeApiServer.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param kubeApiServer.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] +## Component scraping the kube-controller-manager +## +kubeControllerManager: + ## @param kubeControllerManager.enabled Create a ServiceMonitor to scrape kube-controller-manager service + ## + enabled: false + ## @param kubeControllerManager.endpoints If your kube controller manager is not deployed as a pod, specify IPs it can be found on + ## endpoints: + ## - 10.141.4.22 + ## - 10.141.4.23 + ## - 10.141.4.24 + ## + endpoints: [] + ## @param kubeControllerManager.namespace Namespace where kube-controller-manager service is deployed. + ## + namespace: kube-system + ## Service ports and selector information + ## @param kubeControllerManager.service.enabled Whether or not to create a Service object for kube-controller-manager + ## @param kubeControllerManager.service.port Listening port of the kube-controller-manager Service object + ## @param kubeControllerManager.service.targetPort Port to target on the kube-controller-manager Pods. This should be the port that kube-controller-manager is exposing metrics on + ## @param kubeControllerManager.service.selector Optional PODs Label selector for the service + ## + service: + enabled: true + port: 10252 + targetPort: 10252 + ## selector: + ## component: kube-controller-manager + ## + selector: {} + serviceMonitor: + ## @param kubeControllerManager.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default) + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## + interval: "" + ## @param kubeControllerManager.serviceMonitor.https Enable scraping kube-controller-manager over https + ## Requires proper certs (not self-signed) and delegated authentication/authorization checks + ## + https: false + ## @param kubeControllerManager.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping + ## + insecureSkipVerify: "" + ## @param kubeControllerManager.serviceMonitor.serverName Name of the server to use when validating TLS certificate + serverName: "" + ## @param kubeControllerManager.serviceMonitor.metricRelabelings Metric relabeling + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs + ## + metricRelabelings: [] + ## @param kubeControllerManager.serviceMonitor.relabelings Relabel configs + ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config + ## + relabelings: [] +## Component scraping kube scheduler +## +kubeScheduler: + ## @param kubeScheduler.enabled Create a ServiceMonitor to scrape kube-scheduler service + ## + enabled: false + ## @param kubeScheduler.endpoints If your kube scheduler is not deployed as a pod, specify IPs it can be found on + ## endpoints: + ## - 10.141.4.22 + ## - 10.141.4.23 + ## - 10.141.4.24 + ## + endpoints: [] + ## @param kubeScheduler.namespace Namespace where kube-scheduler service is deployed. + ## + namespace: kube-system + ## If using kubeScheduler.endpoints only the port and targetPort are used + ## @param kubeScheduler.service.enabled Whether or not to create a Service object for kube-scheduler + ## @param kubeScheduler.service.port Listening port of the kube scheduler Service object + ## @param kubeScheduler.service.targetPort Port to target on the kube scheduler Pods. This should be the port that kube scheduler is exposing metrics on + ## @param kubeScheduler.service.selector Optional PODs Label selector for the service + ## + service: + enabled: true + port: 10251 + targetPort: 10251 + ## selector: + ## component: kube-scheduler + ## + selector: {} + serviceMonitor: + ## @param kubeScheduler.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default) + ## + interval: "" + ## @param kubeScheduler.serviceMonitor.https Enable scraping kube-scheduler over https + ## Requires proper certs (not self-signed) and delegated authentication/authorization checks + ## + https: false + ## @param kubeScheduler.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping + ## + insecureSkipVerify: "" + ## @param kubeScheduler.serviceMonitor.serverName Name of the server to use when validating TLS certificate + ## + serverName: "" + ## @param kubeScheduler.serviceMonitor.metricRelabelings Metric relabeling + ## metricRelabelings: + ## - action: keep + ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+' + ## sourceLabels: [__name__] + ## + metricRelabelings: [] + ## @param kubeScheduler.serviceMonitor.relabelings Relabel configs + ## relabelings: + ## - sourceLabels: [__meta_kubernetes_pod_node_name] + ## separator: ; + ## regex: ^(.*)$ + ## targetLabel: nodename + ## replacement: $1 + ## action: replace + ## + relabelings: [] +## Component scraping coreDns +## +coreDns: + ## @param coreDns.enabled Create a ServiceMonitor to scrape coredns service + ## + enabled: true + ## @param coreDns.namespace Namespace where core dns service is deployed. + ## + namespace: kube-system + ## Create a ServiceMonitor to scrape coredns service + ## @param coreDns.service.enabled Whether or not to create a Service object for coredns + ## @param coreDns.service.port Listening port of the coredns Service object + ## @param coreDns.service.targetPort Port to target on the coredns Pods. This should be the port that coredns is exposing metrics on + ## @param coreDns.service.selector Optional PODs Label selector for the service + ## + service: + enabled: true + port: 9153 + targetPort: 9153 + ## selector: + ## component: kube-dns + ## + selector: {} + serviceMonitor: + ## @param coreDns.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used. + ## + interval: "" + ## @param coreDns.serviceMonitor.metricRelabelings Metric relabel configs to apply to samples before ingestion. + ## metricRelabelings: + ## - action: keep + ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+' + ## sourceLabels: [__name__] + ## + metricRelabelings: [] + ## @param coreDns.serviceMonitor.relabelings Relabel configs to apply to samples before ingestion. + ## relabelings: + ## - sourceLabels: [__meta_kubernetes_pod_node_name] + ## separator: ; + ## regex: ^(.*)$ + ## targetLabel: nodename + ## replacement: $1 + ## action: replace + ## + relabelings: [] +## Component scraping the kube-proxy +## +kubeProxy: + ## @param kubeProxy.enabled Create a ServiceMonitor to scrape the kube-proxy Service + ## + enabled: false +portal: + open: + enabled: true +updated: true diff --git a/enterprise/prometheus/16.3.9/questions.yaml b/enterprise/prometheus/16.3.9/questions.yaml new file mode 100644 index 00000000000..8ec9f03551c --- /dev/null +++ b/enterprise/prometheus/16.3.9/questions.yaml @@ -0,0 +1,1798 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: operator + group: "App Configuration" + label: "Operator Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: logLevel + label: "Log Level" + description: "Log level for Operator" + schema: + type: string + default: "info" + - variable: prometheus + group: "App Configuration" + label: "Prometheus Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: logLevel + label: "Log Level" + description: "Log level for Prometheus" + schema: + type: string + default: "info" + - variable: retention + label: "Retention" + description: "Metrics retention days" + schema: + type: string + default: "31d" + - variable: retentionSize + label: "Max Retention Size" + description: "Maximum size of metrics" + schema: + type: string + default: "" + - variable: scrapeInterval + label: "Scrape interval" + description: "Interval between consecutive scrapes" + schema: + type: string + default: "15s" + - variable: evaluationInterval + label: "Evaluation interval" + description: "Interval between consecutive evaluations" + schema: + type: string + default: "30s" + - variable: disableCompaction + label: "Disable Compaction" + description: "Disable the compaction of the Prometheus TSDB" + schema: + type: boolean + default: false + - variable: walCompression + label: "WAL Compression" + description: "Enable compression of the write-ahead log using Snappy" + schema: + type: boolean + default: false + - variable: remoteWrite + label: "Remote Write" + schema: + type: list + default: [] + items: + - variable: remoteWriteEntry + label: Remote Write Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: url + label: URL + description: Remote write destination URL + schema: + type: string + required: true + default: "" + - variable: basicAuth + label: Basic Auth + description: Basic authentication for remote write + schema: + type: dict + attrs: + - variable: username + label: Username + description: Basic auth username + schema: + type: string + required: true + default: "" + - variable: password + label: Password + description: Basic auth password + schema: + type: string + required: false + default: "" + - variable: exporters + group: "App Configuration" + label: "Exporter Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: node-exporter + label: "node-exporter" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + - variable: kube-state-metrics + label: "Kube-State-Metrics" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + - variable: alertmanager + group: "App Configuration" + label: "Alertmanager Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: logLevel + label: "Log Level" + description: "Log level for Alertmanager" + schema: + type: string + default: "info" + - variable: retention + label: "Retention" + description: "Metrics retention days" + schema: + type: string + default: "240h" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The serving the Prometheus WebUI" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9090 + required: true + - variable: alertmanager + label: "alertmanager Service" + description: "alertmanager service " + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: alertmanager + label: "alertmanager Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9093 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP diff --git a/enterprise/prometheus/16.3.9/templates/NOTES.txt b/enterprise/prometheus/16.3.9/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/enterprise/prometheus/16.3.9/templates/_helpers.tpl b/enterprise/prometheus/16.3.9/templates/_helpers.tpl new file mode 100644 index 00000000000..1f44049ac4c --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/_helpers.tpl @@ -0,0 +1,210 @@ +{{/* 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 -}} diff --git a/enterprise/prometheus/16.3.9/templates/alertmanager/_alertmanager.tpl b/enterprise/prometheus/16.3.9/templates/alertmanager/_alertmanager.tpl new file mode 100644 index 00000000000..ed5e24e9da6 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/alertmanager/_alertmanager.tpl @@ -0,0 +1,174 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/alertmanager/secrets.yaml b/enterprise/prometheus/16.3.9/templates/alertmanager/secrets.yaml new file mode 100644 index 00000000000..9a6f518f35c --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/alertmanager/secrets.yaml @@ -0,0 +1,13 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/alertmanager/serviceaccount.yaml b/enterprise/prometheus/16.3.9/templates/alertmanager/serviceaccount.yaml new file mode 100644 index 00000000000..a6f438889a2 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/alertmanager/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/alertmanager/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/alertmanager/servicemonitor.yaml new file mode 100644 index 00000000000..ef0e02d3875 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/alertmanager/servicemonitor.yaml @@ -0,0 +1,26 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/common.yaml b/enterprise/prometheus/16.3.9/templates/common.yaml new file mode 100644 index 00000000000..61364503a70 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/common.yaml @@ -0,0 +1,13 @@ +{{/* 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" . }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/core-dns/service.yaml b/enterprise/prometheus/16.3.9/templates/exporters/core-dns/service.yaml new file mode 100644 index 00000000000..359c945de46 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/core-dns/service.yaml @@ -0,0 +1,22 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/core-dns/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/exporters/core-dns/servicemonitor.yaml new file mode 100644 index 00000000000..8906b87f8e1 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/core-dns/servicemonitor.yaml @@ -0,0 +1,29 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-apiserver/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-apiserver/servicemonitor.yaml new file mode 100644 index 00000000000..7cfbb53f379 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-apiserver/servicemonitor.yaml @@ -0,0 +1,35 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/endpoints.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/endpoints.yaml new file mode 100644 index 00000000000..13aa60ebf66 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/endpoints.yaml @@ -0,0 +1,18 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/service.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/service.yaml new file mode 100644 index 00000000000..6a455359832 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/service.yaml @@ -0,0 +1,25 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/servicemonitor.yaml new file mode 100644 index 00000000000..d3f56c49914 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-controller-manager/servicemonitor.yaml @@ -0,0 +1,40 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/endpoints.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/endpoints.yaml new file mode 100644 index 00000000000..dde3d8b9110 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/endpoints.yaml @@ -0,0 +1,18 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/service.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/service.yaml new file mode 100644 index 00000000000..aad5969f5fd --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/service.yaml @@ -0,0 +1,25 @@ +{{- 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 -}} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/servicemonitor.yaml new file mode 100644 index 00000000000..7cbe29f86d7 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kube-scheduler/servicemonitor.yaml @@ -0,0 +1,40 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/exporters/kubelet/servicemonitor.yaml b/enterprise/prometheus/16.3.9/templates/exporters/kubelet/servicemonitor.yaml new file mode 100644 index 00000000000..b109d78c453 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/exporters/kubelet/servicemonitor.yaml @@ -0,0 +1,85 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/_additionalPrometheusRules.tpl b/enterprise/prometheus/16.3.9/templates/prometheus/_additionalPrometheusRules.tpl new file mode 100644 index 00000000000..121048d87ce --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/_additionalPrometheusRules.tpl @@ -0,0 +1,15 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/_additionalScrapeJobs.tpl b/enterprise/prometheus/16.3.9/templates/prometheus/_additionalScrapeJobs.tpl new file mode 100644 index 00000000000..3c5f85140a4 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/_additionalScrapeJobs.tpl @@ -0,0 +1,13 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/_prometheus.tpl b/enterprise/prometheus/16.3.9/templates/prometheus/_prometheus.tpl new file mode 100644 index 00000000000..e4c20bc6eb1 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/_prometheus.tpl @@ -0,0 +1,363 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/_servicemonitor.tpl b/enterprise/prometheus/16.3.9/templates/prometheus/_servicemonitor.tpl new file mode 100644 index 00000000000..20744f2c924 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/_servicemonitor.tpl @@ -0,0 +1,29 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/clusterrole.yaml b/enterprise/prometheus/16.3.9/templates/prometheus/clusterrole.yaml new file mode 100644 index 00000000000..ae96e2d45f8 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/clusterrole.yaml @@ -0,0 +1,41 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/clusterrolebinding.yaml b/enterprise/prometheus/16.3.9/templates/prometheus/clusterrolebinding.yaml new file mode 100644 index 00000000000..7ca10743f4a --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/clusterrolebinding.yaml @@ -0,0 +1,15 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/templates/prometheus/serviceaccount.yaml b/enterprise/prometheus/16.3.9/templates/prometheus/serviceaccount.yaml new file mode 100644 index 00000000000..39539fc1191 --- /dev/null +++ b/enterprise/prometheus/16.3.9/templates/prometheus/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- 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 }} diff --git a/enterprise/prometheus/16.3.9/values.yaml b/enterprise/prometheus/16.3.9/values.yaml new file mode 100644 index 00000000000..e69de29bb2d