From dbeb148ad294ac3aabd09117c173a9870e3a0eb5 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Tue, 30 Jan 2024 00:37:29 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/prometheus/16.4.1/CHANGELOG.md | 99 + enterprise/prometheus/16.4.1/Chart.yaml | 53 + enterprise/prometheus/16.4.1/LICENSE | 106 + enterprise/prometheus/16.4.1/README.md | 28 + enterprise/prometheus/16.4.1/app-changelog.md | 9 + enterprise/prometheus/16.4.1/app-readme.md | 8 + .../16.4.1/charts/common-17.2.29.tgz | Bin 0 -> 98038 bytes .../charts/kube-state-metrics-6.1.15.tgz | Bin 0 -> 102836 bytes .../16.4.1/charts/node-exporter-6.1.14.tgz | Bin 0 -> 102557 bytes enterprise/prometheus/16.4.1/ix_values.yaml | 1374 +++++++++++++ enterprise/prometheus/16.4.1/questions.yaml | 1798 +++++++++++++++++ .../prometheus/16.4.1/templates/NOTES.txt | 1 + .../prometheus/16.4.1/templates/_helpers.tpl | 210 ++ .../templates/alertmanager/_alertmanager.tpl | 174 ++ .../templates/alertmanager/secrets.yaml | 13 + .../alertmanager/serviceaccount.yaml | 12 + .../alertmanager/servicemonitor.yaml | 26 + .../prometheus/16.4.1/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.4.1/values.yaml | 0 36 files changed, 4749 insertions(+) create mode 100644 enterprise/prometheus/16.4.1/CHANGELOG.md create mode 100644 enterprise/prometheus/16.4.1/Chart.yaml create mode 100644 enterprise/prometheus/16.4.1/LICENSE create mode 100644 enterprise/prometheus/16.4.1/README.md create mode 100644 enterprise/prometheus/16.4.1/app-changelog.md create mode 100644 enterprise/prometheus/16.4.1/app-readme.md create mode 100644 enterprise/prometheus/16.4.1/charts/common-17.2.29.tgz create mode 100644 enterprise/prometheus/16.4.1/charts/kube-state-metrics-6.1.15.tgz create mode 100644 enterprise/prometheus/16.4.1/charts/node-exporter-6.1.14.tgz create mode 100644 enterprise/prometheus/16.4.1/ix_values.yaml create mode 100644 enterprise/prometheus/16.4.1/questions.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/NOTES.txt create mode 100644 enterprise/prometheus/16.4.1/templates/_helpers.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/alertmanager/_alertmanager.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/alertmanager/secrets.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/alertmanager/serviceaccount.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/alertmanager/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/common.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/core-dns/service.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/core-dns/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-apiserver/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/endpoints.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/service.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/endpoints.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/service.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/exporters/kubelet/servicemonitor.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/_additionalPrometheusRules.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/_additionalScrapeJobs.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/_prometheus.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/_servicemonitor.tpl create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/clusterrole.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/clusterrolebinding.yaml create mode 100644 enterprise/prometheus/16.4.1/templates/prometheus/serviceaccount.yaml create mode 100644 enterprise/prometheus/16.4.1/values.yaml diff --git a/enterprise/prometheus/16.4.1/CHANGELOG.md b/enterprise/prometheus/16.4.1/CHANGELOG.md new file mode 100644 index 00000000000..a431f2c990d --- /dev/null +++ b/enterprise/prometheus/16.4.1/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [prometheus-16.4.1](https://github.com/truecharts/charts/compare/prometheus-16.4.0...prometheus-16.4.1) (2024-01-30) + +### Chore + + + +- update helm chart kube-state-metrics to 6.1.15 by renovate ([#17758](https://github.com/truecharts/charts/issues/17758)) + + +## [prometheus-16.4.0](https://github.com/truecharts/charts/compare/prometheus-16.3.9...prometheus-16.4.0) (2024-01-29) + +### Chore + + + +- update container image quay.io/thanos/thanos to v0.34.0[@2356a5f](https://github.com/2356a5f) by renovate ([#17699](https://github.com/truecharts/charts/issues/17699)) + + +## [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)) + + diff --git a/enterprise/prometheus/16.4.1/Chart.yaml b/enterprise/prometheus/16.4.1/Chart.yaml new file mode 100644 index 00000000000..299cb298f80 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.15 + 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://hub.docker.com/r/bitnami/prometheus + - https://quay.io/thanos/thanos + - https://hub.docker.com/r/bitnami/alertmanager +type: application +version: 16.4.1 diff --git a/enterprise/prometheus/16.4.1/LICENSE b/enterprise/prometheus/16.4.1/LICENSE new file mode 100644 index 00000000000..c30fceb4a5b --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/README.md b/enterprise/prometheus/16.4.1/README.md new file mode 100644 index 00000000000..fee81aacfbc --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/app-changelog.md b/enterprise/prometheus/16.4.1/app-changelog.md new file mode 100644 index 00000000000..8751310bd54 --- /dev/null +++ b/enterprise/prometheus/16.4.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [prometheus-16.4.1](https://github.com/truecharts/charts/compare/prometheus-16.4.0...prometheus-16.4.1) (2024-01-30) + +### Chore + + + +- update helm chart kube-state-metrics to 6.1.15 by renovate ([#17758](https://github.com/truecharts/charts/issues/17758)) \ No newline at end of file diff --git a/enterprise/prometheus/16.4.1/app-readme.md b/enterprise/prometheus/16.4.1/app-readme.md new file mode 100644 index 00000000000..93f59634eaa --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/charts/common-17.2.29.tgz b/enterprise/prometheus/16.4.1/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.4.1/charts/kube-state-metrics-6.1.15.tgz b/enterprise/prometheus/16.4.1/charts/kube-state-metrics-6.1.15.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f45977c59b0e2b1ceea88dbb5cd0bac85c068759 GIT binary patch literal 102836 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 LtCj?g0JIDMJU`>H literal 0 HcmV?d00001 diff --git a/enterprise/prometheus/16.4.1/charts/node-exporter-6.1.14.tgz b/enterprise/prometheus/16.4.1/charts/node-exporter-6.1.14.tgz new file mode 100644 index 0000000000000000000000000000000000000000..01302d2f86583cf5d5ba086b5f531d82c1b98c8b GIT binary patch literal 102557 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 literal 0 HcmV?d00001 diff --git a/enterprise/prometheus/16.4.1/ix_values.yaml b/enterprise/prometheus/16.4.1/ix_values.yaml new file mode 100644 index 00000000000..186908931f9 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.34.0@sha256:2356a5f131fd80965d7a0617b70b14e4facae1aee5ec43f117f8bfbe20d987fc +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.4.1/questions.yaml b/enterprise/prometheus/16.4.1/questions.yaml new file mode 100644 index 00000000000..8ec9f03551c --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/NOTES.txt b/enterprise/prometheus/16.4.1/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/enterprise/prometheus/16.4.1/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/enterprise/prometheus/16.4.1/templates/_helpers.tpl b/enterprise/prometheus/16.4.1/templates/_helpers.tpl new file mode 100644 index 00000000000..1f44049ac4c --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/alertmanager/_alertmanager.tpl b/enterprise/prometheus/16.4.1/templates/alertmanager/_alertmanager.tpl new file mode 100644 index 00000000000..ed5e24e9da6 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/alertmanager/secrets.yaml b/enterprise/prometheus/16.4.1/templates/alertmanager/secrets.yaml new file mode 100644 index 00000000000..9a6f518f35c --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/alertmanager/serviceaccount.yaml b/enterprise/prometheus/16.4.1/templates/alertmanager/serviceaccount.yaml new file mode 100644 index 00000000000..a6f438889a2 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/alertmanager/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/alertmanager/servicemonitor.yaml new file mode 100644 index 00000000000..ef0e02d3875 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/common.yaml b/enterprise/prometheus/16.4.1/templates/common.yaml new file mode 100644 index 00000000000..61364503a70 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/core-dns/service.yaml b/enterprise/prometheus/16.4.1/templates/exporters/core-dns/service.yaml new file mode 100644 index 00000000000..359c945de46 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/core-dns/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/exporters/core-dns/servicemonitor.yaml new file mode 100644 index 00000000000..8906b87f8e1 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-apiserver/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-apiserver/servicemonitor.yaml new file mode 100644 index 00000000000..7cfbb53f379 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-controller-manager/endpoints.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/endpoints.yaml new file mode 100644 index 00000000000..13aa60ebf66 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-controller-manager/service.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/service.yaml new file mode 100644 index 00000000000..6a455359832 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-controller-manager/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-controller-manager/servicemonitor.yaml new file mode 100644 index 00000000000..d3f56c49914 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-scheduler/endpoints.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/endpoints.yaml new file mode 100644 index 00000000000..dde3d8b9110 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-scheduler/service.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/service.yaml new file mode 100644 index 00000000000..aad5969f5fd --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kube-scheduler/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kube-scheduler/servicemonitor.yaml new file mode 100644 index 00000000000..7cbe29f86d7 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/exporters/kubelet/servicemonitor.yaml b/enterprise/prometheus/16.4.1/templates/exporters/kubelet/servicemonitor.yaml new file mode 100644 index 00000000000..b109d78c453 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/_additionalPrometheusRules.tpl b/enterprise/prometheus/16.4.1/templates/prometheus/_additionalPrometheusRules.tpl new file mode 100644 index 00000000000..121048d87ce --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/_additionalScrapeJobs.tpl b/enterprise/prometheus/16.4.1/templates/prometheus/_additionalScrapeJobs.tpl new file mode 100644 index 00000000000..3c5f85140a4 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/_prometheus.tpl b/enterprise/prometheus/16.4.1/templates/prometheus/_prometheus.tpl new file mode 100644 index 00000000000..e4c20bc6eb1 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/_servicemonitor.tpl b/enterprise/prometheus/16.4.1/templates/prometheus/_servicemonitor.tpl new file mode 100644 index 00000000000..20744f2c924 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/clusterrole.yaml b/enterprise/prometheus/16.4.1/templates/prometheus/clusterrole.yaml new file mode 100644 index 00000000000..ae96e2d45f8 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/clusterrolebinding.yaml b/enterprise/prometheus/16.4.1/templates/prometheus/clusterrolebinding.yaml new file mode 100644 index 00000000000..7ca10743f4a --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/templates/prometheus/serviceaccount.yaml b/enterprise/prometheus/16.4.1/templates/prometheus/serviceaccount.yaml new file mode 100644 index 00000000000..39539fc1191 --- /dev/null +++ b/enterprise/prometheus/16.4.1/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.4.1/values.yaml b/enterprise/prometheus/16.4.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d