From 8dde055cbfea81e4666f2da79656abbaeeb94d27 Mon Sep 17 00:00:00 2001 From: Stefan Reimer Date: Mon, 21 Oct 2024 14:41:14 +0000 Subject: [PATCH] feat: version bump for cert-manager, metrics, istio, storage --- charts/kubezero-istio-gateway/Chart.yaml | 2 +- charts/kubezero-istio-gateway/README.md | 4 +- .../charts/gateway/Chart.yaml | 4 +- .../charts/gateway/files/profile-ambient.yaml | 1 - .../profile-compatibility-version-1.20.yaml | 4 +- .../profile-compatibility-version-1.21.yaml | 10 +- .../profile-compatibility-version-1.22.yaml | 16 + .../files/profile-openshift-ambient.yaml | 3 +- .../charts/gateway/templates/_helpers.tpl | 40 +- .../charts/gateway/templates/deployment.yaml | 12 +- .../charts/gateway/templates/zzz_profile.yaml | 5 + .../charts/gateway/values.schema.json | 8 +- .../charts/gateway/values.yaml | 2 + charts/kubezero-istio/Chart.yaml | 2 +- charts/kubezero-istio/README.md | 8 +- charts/kubezero-istio/dashboards.yaml | 12 +- .../templates/grafana-dashboards.yaml | 10 +- charts/kubezero-metrics/Chart.yaml | 2 +- charts/kubezero-metrics/README.md | 8 +- .../charts/kube-prometheus-stack/Chart.yaml | 12 +- .../charts/kube-prometheus-stack/README.md | 77 + .../crds/crds/crd-alertmanagerconfigs.yaml | 3697 +++++++++-- .../charts/crds/crds/crd-alertmanagers.yaml | 617 +- .../charts/crds/crds/crd-podmonitors.yaml | 325 +- .../charts/crds/crds/crd-probes.yaml | 289 +- .../crds/crds/crd-prometheusagents.yaml | 831 ++- .../charts/crds/crds/crd-prometheuses.yaml | 1258 ++-- .../charts/crds/crds/crd-prometheusrules.yaml | 11 +- .../charts/crds/crds/crd-scrapeconfigs.yaml | 5671 ++++++++++++++--- .../charts/crds/crds/crd-servicemonitors.yaml | 327 +- .../charts/crds/crds/crd-thanosrulers.yaml | 326 +- .../charts/grafana/Chart.yaml | 4 +- .../charts/grafana/README.md | 10 +- .../grafana/ci/with-nondefault-values.yaml | 6 + .../charts/grafana/templates/_helpers.tpl | 4 +- .../charts/grafana/templates/_pod.tpl | 14 + .../templates/dashboards-json-configmap.yaml | 3 - .../charts/grafana/templates/deployment.yaml | 2 +- .../charts/grafana/templates/pvc.yaml | 2 +- .../charts/grafana/templates/statefulset.yaml | 4 +- .../templates/tests/test-configmap.yaml | 2 +- .../tests/test-podsecuritypolicy.yaml | 2 +- .../grafana/templates/tests/test-role.yaml | 2 +- .../templates/tests/test-rolebinding.yaml | 2 +- .../templates/tests/test-serviceaccount.yaml | 2 +- .../charts/grafana/templates/tests/test.yaml | 2 +- .../charts/grafana/values.yaml | 12 +- .../charts/kube-state-metrics/Chart.yaml | 4 +- .../kube-state-metrics/templates/_helpers.tpl | 2 +- .../templates/deployment.yaml | 37 +- .../charts/kube-state-metrics/values.yaml | 20 + .../prometheus-node-exporter/Chart.yaml | 4 +- .../ci/common-labels-values.yaml | 4 + .../ci/default-values.yaml | 1 + .../ci/pod-labels-values.yaml | 4 + .../ci/service-labels-values.yaml | 5 + .../ci/serviceport-values.yaml | 3 + .../templates/_helpers.tpl | 4 +- .../templates/daemonset.yaml | 4 + .../templates/service.yaml | 5 +- .../prometheus-node-exporter/values.yaml | 40 +- .../prometheus-windows-exporter/Chart.yaml | 4 +- .../templates/daemonset.yaml | 4 +- .../prometheus-windows-exporter/values.yaml | 2 + .../templates/alertmanager/alertmanager.yaml | 3 + .../grafana/configmaps-datasources.yaml | 3 + .../_prometheus-operator-webhook.tpl | 7 + .../deployment/serviceaccount.yaml | 3 + .../job-patch/serviceaccount.yaml | 3 + .../mutatingWebhookConfiguration.yaml | 8 +- .../validatingWebhookConfiguration.yaml | 8 +- .../prometheus-operator/clusterrole.yaml | 3 + .../prometheus-operator/deployment.yaml | 26 + .../prometheus-operator/serviceaccount.yaml | 3 + .../templates/prometheus/_rules.tpl | 4 + .../templates/prometheus/clusterrole.yaml | 4 + .../templates/prometheus/prometheus.yaml | 3 + .../templates/prometheus/serviceaccount.yaml | 4 +- .../templates/thanos-ruler/ruler.yaml | 4 + .../charts/kube-prometheus-stack/values.yaml | 70 +- .../jsonnet/dashboards/apiserver.json | 47 +- .../jsonnet/dashboards/cluster-total.json | 79 +- .../dashboards/controller-manager.json | 33 +- .../dashboards/k8s-resources-cluster.json | 59 +- .../dashboards/k8s-resources-namespace.json | 57 +- .../dashboards/k8s-resources-node.json | 25 +- .../jsonnet/dashboards/k8s-resources-pod.json | 45 +- .../dashboards/k8s-resources-workload.json | 39 +- .../k8s-resources-workloads-namespace.json | 47 +- .../jsonnet/dashboards/kubelet.json | 61 +- .../jsonnet/dashboards/namespace-by-pod.json | 59 +- .../dashboards/namespace-by-workload.json | 55 +- .../dashboards/persistentvolumesusage.json | 21 +- .../jsonnet/dashboards/pod-total.json | 29 +- .../jsonnet/dashboards/proxy.json | 35 +- .../jsonnet/dashboards/scheduler.json | 31 +- .../jsonnet/dashboards/workload-total.json | 33 +- .../jsonnet/jsonnetfile.lock.json | 56 +- .../rules/kube-state-metrics-prometheusRule | 2 +- .../jsonnet/rules/kubernetes-prometheusRule | 55 +- .../rules/node-exporter-prometheusRule | 2 +- .../rules/prometheus-operator-prometheusRule | 2 +- .../jsonnet/rules/prometheus-prometheusRule | 2 +- .../templates/grafana-dashboards-k8s.yaml | 34 +- .../templates/rules/kubernetes.yaml | 56 +- charts/kubezero-metrics/values.yaml | 2 + .../dashboards/openebs-mayastor-diskpool.json | 836 +++ .../openebs-mayastor-volume-replica.json | 422 ++ .../dashboards/openebs-mayastor-volume.json | 422 ++ charts/kubezero/values.yaml | 8 +- 110 files changed, 13343 insertions(+), 3281 deletions(-) create mode 100644 charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/ci/with-nondefault-values.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/common-labels-values.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/default-values.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/pod-labels-values.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/service-labels-values.yaml create mode 100644 charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/serviceport-values.yaml create mode 100644 charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-diskpool.json create mode 100644 charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume-replica.json create mode 100644 charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume.json diff --git a/charts/kubezero-istio-gateway/Chart.yaml b/charts/kubezero-istio-gateway/Chart.yaml index 3beef132..38cacda4 100644 --- a/charts/kubezero-istio-gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio-gateway description: KubeZero Umbrella Chart for Istio gateways type: application -version: 0.22.3 +version: 0.23.2 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio-gateway/README.md b/charts/kubezero-istio-gateway/README.md index cb029252..85f824b3 100644 --- a/charts/kubezero-istio-gateway/README.md +++ b/charts/kubezero-istio-gateway/README.md @@ -1,6 +1,6 @@ # kubezero-istio-gateway -![Version: 0.22.3-1](https://img.shields.io/badge/Version-0.22.3--1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.23.2](https://img.shields.io/badge/Version-0.23.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio gateways @@ -21,7 +21,7 @@ Kubernetes: `>= 1.26.0-0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://istio-release.storage.googleapis.com/charts | gateway | 1.22.3 | +| https://istio-release.storage.googleapis.com/charts | gateway | 1.23.2 | ## Values diff --git a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml index 626ba695..d1391f70 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 1.22.3 +appVersion: 1.23.2 description: Helm chart for deploying Istio gateways icon: https://istio.io/latest/favicons/android-192x192.png keywords: @@ -9,4 +9,4 @@ name: gateway sources: - https://github.com/istio/istio type: application -version: 1.22.3 +version: 1.23.2 diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml index 7b2c18c1..22db0330 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml @@ -12,7 +12,6 @@ global: pilot: env: PILOT_ENABLE_AMBIENT: "true" - CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel" cni: ambient: enabled: true diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml index 480718f1..72fdd5b3 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml @@ -15,10 +15,12 @@ pilot: ENABLE_RESOLUTION_NONE_TARGET_PORT: "false" meshConfig: - # 1.22 behavioral changes defaultConfig: proxyMetadata: + # 1.22 behavioral changes ISTIO_DELTA_XDS: "false" + # 1.23 behavioral changes + ENABLE_DELIMITED_STATS_TAG_REGEX: "false" tracing: zipkin: address: zipkin.istio-system:9411 diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml index 808d224e..d11c242b 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml @@ -7,11 +7,17 @@ pilot: # 1.22 behavioral changes ENABLE_ENHANCED_RESOURCE_SCOPING: "false" ENABLE_RESOLUTION_NONE_TARGET_PORT: "false" + + # 1.23 behavioral changes + ENABLE_DELIMITED_STATS_TAG_REGEX: "false" + meshConfig: # 1.22 behavioral changes - proxyMetadata: - ISTIO_DELTA_XDS: "false" defaultConfig: + proxyMetadata: + ISTIO_DELTA_XDS: "false" + # 1.23 behavioral changes + ENABLE_DELIMITED_STATS_TAG_REGEX: "false" tracing: zipkin: address: zipkin.istio-system:9411 diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml new file mode 100644 index 00000000..b091e2b9 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml @@ -0,0 +1,16 @@ +# WARNING: DO NOT EDIT, THIS FILE IS A COPY. +# The original version of this file is located at /manifests/helm-profiles directory. +# If you want to make a change in this file, edit the original one and run "make gen". + +pilot: + env: + # 1.23 behavioral changes + ENABLE_DELIMITED_STATS_TAG_REGEX: "false" + +meshConfig: + defaultConfig: + proxyMetadata: + # 1.22 behavioral changes + ENABLE_DEFERRED_CLUSTER_CREATION: "false" + # 1.23 behavioral changes + ENABLE_DELIMITED_STATS_TAG_REGEX: "false" diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift-ambient.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift-ambient.yaml index 0908fd14..df4532d1 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift-ambient.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift-ambient.yaml @@ -27,8 +27,7 @@ pilot: # Allow sidecars/ingress to send/receive HBONE. This is required for interop. PILOT_ENABLE_SENDING_HBONE: "true" PILOT_ENABLE_SIDECAR_LISTENING_HBONE: "true" - CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel" platform: openshift variant: distroless seLinuxOptions: - type: spc_t \ No newline at end of file + type: spc_t diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/_helpers.tpl b/charts/kubezero-istio-gateway/charts/gateway/templates/_helpers.tpl index a777d43b..917b6359 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/_helpers.tpl +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/_helpers.tpl @@ -7,7 +7,7 @@ {{- end }} {{/* -Create chart name and version as used by the chart label. +Create chart name and version as used by the helm.sh/chart label. */}} {{- define "gateway.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} @@ -16,39 +16,29 @@ Create chart name and version as used by the chart label. {{- define "gateway.labels" -}} helm.sh/chart: {{ include "gateway.chart" . }} {{ include "gateway.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/name: {{ include "gateway.name" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} {{- range $key, $val := .Values.labels }} -{{- if not (or (eq $key "app") (eq $key "istio")) }} -{{ $key | quote }}: {{ $val | quote }} -{{- end }} -{{- end }} -{{- end }} - -{{- define "gateway.podLabels" -}} -{{ include "gateway.selectorLabels" . }} -{{- range $key, $val := .Values.labels }} -{{- if not (or (eq $key "app") (eq $key "istio")) }} +{{- if and (ne $key "app") (ne $key "istio") }} {{ $key | quote }}: {{ $val | quote }} {{- end }} {{- end }} {{- end }} {{- define "gateway.selectorLabels" -}} -{{- if hasKey .Values.labels "app" }} -{{- with .Values.labels.app }}app: {{.|quote}} -{{- end}} -{{- else }}app: {{ include "gateway.name" . }} +app: {{ (.Values.labels.app | quote) | default (include "gateway.name" .) }} +istio: {{ (.Values.labels.istio | quote) | default (include "gateway.name" . | trimPrefix "istio-") }} {{- end }} -{{- if hasKey .Values.labels "istio" }} -{{- with .Values.labels.istio }} -istio: {{.|quote}} -{{- end}} -{{- else }} -istio: {{ include "gateway.name" . | trimPrefix "istio-" }} + +{{/* +Keep sidecar injection labels together +https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy +*/}} +{{- define "gateway.sidecarInjectionLabels" -}} +sidecar.istio.io/inject: "true" +{{- with .Values.revision }} +istio.io/rev: {{ . | quote }} {{- end }} {{- end }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml index 0e8b7d90..1bd29615 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml @@ -26,11 +26,15 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: - sidecar.istio.io/inject: "true" - {{- with .Values.revision }} - istio.io/rev: {{ . | quote }} + {{- include "gateway.sidecarInjectionLabels" . | nindent 8 }} + {{- include "gateway.selectorLabels" . | nindent 8 }} + app.kubernetes.io/name: {{ include "gateway.name" . }} + app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} + {{- range $key, $val := .Values.labels }} + {{- if and (ne $key "app") (ne $key "istio") }} + {{ $key | quote }}: {{ $val | quote }} + {{- end }} {{- end }} - {{- include "gateway.podLabels" . | nindent 8 }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml index 6359d435..2d0bd4af 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml @@ -15,6 +15,7 @@ However, we can workaround this by placing all of (1) under a specific key (.Val We can then merge the profile onto the defaults, then the user settings onto that. Finally, we can set all of that under .Values so the chart behaves without awareness. */}} +{{- $globals := $.Values.global | default dict | deepCopy }} {{- $defaults := $.Values.defaults }} {{- $_ := unset $.Values "defaults" }} {{- $profile := dict }} @@ -35,4 +36,8 @@ Finally, we can set all of that under .Values so the chart behaves without aware {{- if $profile }} {{- $a := mustMergeOverwrite $defaults $profile }} {{- end }} +# Flatten globals, if defined on a per-chart basis +{{- if false }} +{{- $a := mustMergeOverwrite $defaults $globals }} +{{- end }} {{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/values.schema.json b/charts/kubezero-istio-gateway/charts/gateway/values.schema.json index c97d84c1..4c4f0836 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/values.schema.json +++ b/charts/kubezero-istio-gateway/charts/gateway/values.schema.json @@ -99,10 +99,10 @@ "type": "object", "properties": { "cpu": { - "type": "string" + "type": ["string", "null"] }, "memory": { - "type": "string" + "type": ["string", "null"] } } }, @@ -110,10 +110,10 @@ "type": "object", "properties": { "cpu": { - "type": "string" + "type": ["string", "null"] }, "memory": { - "type": "string" + "type": ["string", "null"] } } } diff --git a/charts/kubezero-istio-gateway/charts/gateway/values.yaml b/charts/kubezero-istio-gateway/charts/gateway/values.yaml index 1432f4d7..72205b4a 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/values.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/values.yaml @@ -1,3 +1,5 @@ +# "defaults" is a workaround for Helm limitations. Users should NOT set ".defaults" explicitly, but rather directly set the fields internally. +# For instance, instead of `--set defaults.foo=bar`, just set `--set foo=bar`. defaults: # Name allows overriding the release name. Generally this should not be set name: "" diff --git a/charts/kubezero-istio/Chart.yaml b/charts/kubezero-istio/Chart.yaml index 77505e65..1c7f151f 100644 --- a/charts/kubezero-istio/Chart.yaml +++ b/charts/kubezero-istio/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio description: KubeZero Umbrella Chart for Istio type: application -version: 0.22.3 +version: 0.23.2 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio/README.md b/charts/kubezero-istio/README.md index 99f2a6ac..daac8027 100644 --- a/charts/kubezero-istio/README.md +++ b/charts/kubezero-istio/README.md @@ -1,6 +1,6 @@ # kubezero-istio -![Version: 0.22.3-1](https://img.shields.io/badge/Version-0.22.3--1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.23.2](https://img.shields.io/badge/Version-0.23.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio @@ -21,9 +21,9 @@ Kubernetes: `>= 1.26.0-0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://istio-release.storage.googleapis.com/charts | base | 1.22.3 | -| https://istio-release.storage.googleapis.com/charts | istiod | 1.22.3 | -| https://kiali.org/helm-charts | kiali-server | 1.88.0 | +| https://istio-release.storage.googleapis.com/charts | base | 1.23.2 | +| https://istio-release.storage.googleapis.com/charts | istiod | 1.23.2 | +| https://kiali.org/helm-charts | kiali-server | 1.89.7 | ## Values diff --git a/charts/kubezero-istio/dashboards.yaml b/charts/kubezero-istio/dashboards.yaml index 8d120846..5791f7f8 100644 --- a/charts/kubezero-istio/dashboards.yaml +++ b/charts/kubezero-istio/dashboards.yaml @@ -5,18 +5,22 @@ folder: Istio condition: '.Values.istiod.telemetry.enabled' dashboards: - name: istio-control-plane - url: https://grafana.com/api/dashboards/7645/revisions/201/download + url: https://grafana.com/api/dashboards/7645/revisions/229/download tags: - Istio - name: istio-mesh - url: https://grafana.com/api/dashboards/7639/revisions/201/download + url: https://grafana.com/api/dashboards/7639/revisions/229/download tags: - Istio - name: istio-service - url: https://grafana.com/api/dashboards/7636/revisions/201/download + url: https://grafana.com/api/dashboards/7636/revisions/229/download tags: - Istio - name: istio-workload - url: https://grafana.com/api/dashboards/7630/revisions/201/download + url: https://grafana.com/api/dashboards/7630/revisions/229/download + tags: + - Istio +- name: istio-performance + url: https://grafana.com/api/dashboards/11829/revisions/229/download tags: - Istio diff --git a/charts/kubezero-istio/templates/grafana-dashboards.yaml b/charts/kubezero-istio/templates/grafana-dashboards.yaml index 9231bc2b..310b1820 100644 --- a/charts/kubezero-istio/templates/grafana-dashboards.yaml +++ b/charts/kubezero-istio/templates/grafana-dashboards.yaml @@ -11,11 +11,13 @@ metadata: k8s-sidecar-target-directory: Istio binaryData: istio-control-plane.json.gz: - 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 istio-mesh.json.gz: - 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 istio-service.json.gz: - H4sIAAAAAAAC/+1dbVPbSLb+zq9oa/feghQhlrHBmsqkCgyZzS6TsJjNVO2Q6xJSY+siS45eCIRif/t2t96llrEtWZbt82GYWK2Xfjnn9PP0c6R+3kFIGAw0Y+I6tvAL+pP8RuiZ/SUlhjzG5Khw1h9cXn35/fz6b+f/6gv7QbEu32Kdll9a5hg7I+zaUaGKbcXSJo5mGvSUqMB5mrCbqrIj26ZrKTgqm+juUDM+qbR8wrmpV/7Zr1bsseyEF/L3277XJAt/dzULcxoVPH9oyXeyIUc311Tu4aATfksXPGDL9lt3dNA+OPQrsc9/3EQ2SGdlHzYZcR8VPxx70PRn8LpUy+1MI9uNvEd2DpoHzQXa5si3Os4+7Tp5ONu2cBBlwzAdmRoQHUXvoYKu2U44plFVSMmtq+nOJ3oncT86GusSflPJOdhgdfoFOZaLY8dHmso5qimm0TN106I3tIa38m5zH7VEkfzpdPaRuBe/ddDqk6gt6H/RiY4tJ1GFaATt0a0pW6rgl72w/3/b8Ts/7VafbPIv1MfWg6ZgdBZcjfxuReJBSySjxy7Fqub4Db2TdZu1SRga2GH+dnx0eOQdocZ3bZq6o03I8SY7qDnYkv2Hih2p05HEliQeS8esVNeMe+Zp3sAxc+B4nmLqujyxsZrqVPJITb00o1H2ej81kj/I71Y7duAxqJ3/+4n+DrotaYxi8yiKIcnaJa2I1dJwsEGNTHivag9I0WXb/vUmGpq3Iyyr2EIOfnTeKuRUbN0IH26M9za59Yf++dXXT73zX9BfbW9U3r9jx0n5O3K7D7FRJw+707Cu9kzjThsmWu+H0DvZ1R07U0Jr6dqOOaYlL4mil/3kPUxiCaR3vUD4bSfnRO4IhKNwmLpneiR4oxGOiJj7TDYyXSlxLGlJ4eGxyTxRGDljPdmB5iQZIFYyjOka5jbZm7++RjHv+CBwzygUaA7zUSF12JINUgPLa1MyJsUCCG1N9PzY05M2LisjfK2NsenSuxmuru8nfYDEt1NZuR9apmuo8YiRPOerrLs4vzjpZuw4i5itNomUnbb3X/NA2kt3p3fW4TGJpy1pH7Wb9LRuznkdUioet8hpHXa34734CCQtaYb5oEZueWdaY5nZsDlJVXEou0OcrdxYfgzGRGym/XFMbM8vTBfZI/MHbxypaY0IjhqZunpB8Z792lm/y9Y9ZiNPjXSxiNPmRJyjGQNOe3rAEVvJY9TvH2Sd5wU5wWhKyCEm/7sfCB5YR6fqx+bW4Aziy3L6hP8n9qPdPYWnuI6ZPsW0NBIDgslYGJHfP0msk/WMb2DVVfCXnNqyKKArWQ/1ob3tfDadz6RLhFTpt/30fZi32JmQ5eE72g2hzUz1CRq6Eg3PHcixPJloxvDai3liXlm2bZkuCPAZqyZyTDYb5LQiNZllGpB7cxK5hzPcvJW8eW4IIy5+RqLYpUls1876uUDtmBUGnUmmQgMrDsFdmfOuaY04pj8xbedOe8xOQ37BR2Jxfe0nu32n+T+pcyzMv5Ydn3op66rfCUh8fejuLBZoWTOynep4DRM+vzvhFJrhhTP2OZ1570k84ETcO03Xk3zgkHABUeySPwTdkAlJ7GbmrTv67Ow07gUdHL+dd7cWneKkw8x9/LA9NdIy0E9u6Y4NDqyQrSF2Zuhu/DjxqkQBwa7tjnc1wgjwrkYZCKPb2HbsgUNojv5s4YlpkcD6639uhL9+J79uhH0y2TmaweLWwMdUrNj/943w8mdn/G1vj/ZYsynuZYctmg0dAl3oTTRsZ08LQvpHWXFYN4qZU4gheosMHOOwHTxJTSPTLCOc92xO5wZQrqfTmI2uvF5CX+lgYIEL4GwSvHRykpyMFF6UiPtON+077IzZfMekLRR+ndNtgkA1l+ewi4IVG8W1GICtPUDlQMoiCDWLdwsCVBUr2lhmYCzTN/UDrxNsUYLlGppTKojtVoFi08BlCTD2aAEY2wYYCzAWYCzAWICxi8DYZQDYfTJ3TEiQwgOFmGyDlHUO3oS4Fr1DS0TNFaHlhUCxRMCPJNH/DjrTAXLfVRRs2+iK9BHaNUzjbefxEQXdau9tIWSWH4avw2VZ12S7FwDa56Tj3MoWF+6wpfALbAwdJrU0M2U477K1WkLVWIgSMwd/s2RV81bTm+VDuuQy46uYbqSpKjb6no/yOt0TS46TwA4PMeM+qXoSaxgaJ/Z1WuyLn/IwzCkJKBq/lEqi5+OJ8zSl/N/YMnOKyZyfV6IZOSWWNhwRD+ZIsempIw3EaFDNuWkunntJQ2ds8+QWWvBDU51RxrRy0HYGzWTm+4AlyUM+X51FO5rQJ1C7dmkVOtkyvnGRAVexhdnEeKebqTDqzRxfEu6WRhUKzgskJCwr99yn0oWWCVYvPDiSLZ97Tt8dkWnVJORkPPjuyoaj6Xi3eUCpfM7EO1BdT9UejElA0GxMIKZqD25d5R47i07HIpvsb5/Qro7ZrE+AbXMPmRZavHrLqFlhxMBnSjPgCS9ufQyfdtlpCrODjv0ixiDV2xiktTMGP0eGE2MXtAVpmi2clmoLUr1tQQJbkKbYQm8hMpKaumh7PnoMPLN4QMuu8NBfduJc2B9pdw7/Sv66/5k/bCkaE+ZaPaehjWxlkqWCMjLOHAGc4ZpBQIw0Q9UeNNWVp6SkxNIhYzmHHo6VHzUODPZsjbf0HMuDof2TZvn+QhLnqnwQFwK1KRD/SX6cZZEssmKO7Qa5rNnK0UJzeCrbmGu0HqTlXuZhWm4Rf8Hj9YgWa8OIWkBN2sFZFc11xye+VTHSksdWaNkFfghbtsN7UA21pL+0JElpHy2qHf1FbbflQ3nzsplOIZuJt2bQnV8H6oIOBDoQ6ECgA4EOVIoO5CgTwrIUrD1gdXD75OBp4gyalVvVhlIJpYs7OYLOde+S0B6vH9Ep7UfQbiAXH3LxtysXvzsdvErHAF4BvAJ4BfAK4HX5ufg3QgyubnlCPn1jGluQkA8J+ZCQDwn5MyXkv4Zlu4BlAcsClgUsC1h2mQn5c6PY0rLyF8XPa56a70NlSM2H1PwNTs3vFkzNlyRIzYfUfEjNrzg1f4E5ucr8/MLVgyT9mpqFtJ5msdXp+hVYhQRWsRGJ+yl9ABL3IXEfEvchcR8S9yH1adbE/Vf0ovTqOghGIBiBYASCEQhGBTL3bRKQIGu/WNZ+n76xDBn7sWu+RXvXBB31GzawFZvpwt6xiBtw90qpYPMLMW/zi3ZVm1/0Lj6df75Gf3y5+sfFl5Oz/pbvfdGaDgHbnXrufTHPKK7d1hegx76mxzZL0mOPOK6T0V7zXKdTUI9tdWbTY0sQWznYaRExdZ3VUiTb6CfVlkE1LVM1nSm/3ydVvrLgWprzNJiYuqY8kYg/dh1X1geObs+YKpWFy178GvwwCe8wZdW7wlJ+6NmyASWarPOCsww7yrSiMkXqgn2Ue4d9lMjbquQthDTufn5O1w+9vBxkj0a1JuWIBJnnZOXp0d0bV+0equSvKjbH1xf9PWGRtyBaCylqBQ2pkbak1ykUHT4O9ZpmTGidrKlsileiqU0VZGe0qzpqcp8MxSTT5zBQ5WzCUlGfdQ86MVRy2OsH1KMz05xKHXdG3jqpLrs+5cgpIl2impd+j3rJOpjASVUAOa86OQ+YV1WZsDMzL24qbGHqdbRK6rWENFfIYwVGtvi2EWh2goYWfZlldcB6wW0tyu2U1bV+zfnDSklpuWbTAGcqi7mDNy3kTRvPu197BTDi45Anu9o82bzvO5RBTQUCCUUBODZw7Fm/jGIrljYJ0gS3loB3Z1Q+RbEo/67VLlHVUPT4m6hA4YHCr3aXqBqyW3Eh0azSHaw2qtdqRGVSNWVEJrf2Ly/ostNc7cJABVt3bZeHSuChm+Wh0pweelqNh3bAQxf10A546GZ5aGc+D+1V46ESeOiiHiqBh26Wh0rzeehZJR5aFQ9tABHdkm5bbyY6xSHPN4p2NoB3gkOuAfGc4pAfN4plNoBmgkOuAc+c4pC/bRSpbACrBIdcA1o5xSH/tknvX4VfRYS8r638PiLkekGulw3pXLF0ru5S0rm6NU/ngnwtyNdaYr7W3Eu93vffQIKBRKOFTEsC01p/01p9iszc629gW5DbUcS0JDCtTQhbK85KqBRtwdLk5qrplWIrMKTNVYErBVJgSJurXlYKm8CQQHVbjupGP68PiltdFDcVK7eZvRJAeAPhDYS3CoU38WgZytsRKG+gvIHyNstakP8dNVhoBOmt9OUhsC3Q3pa2ZATGBeLbslaRwLZAfVua+laCccEaJchvYEmgv9UJTIElgQAHlgQKXI0UuHBfMVDeQHkD5Q2UN9hCLCa9cT9hflxQees2l7qFGGwCBrpYAV2Mv5uuo0wIcFWw9oBVH7iu1f5Xi8DWTdhHt557M5dlTY3tMqeKLGZTt3o6pYaGrny7Q3fkSShMQLzuXaJeaGhAf1ZLf05h8+SSmU+2HUB8gPjMt3dycebTAuYDzGf9mI9N+jWBU+cgOFxICzB1c4nNHMbSAGsBUlMGqekTm0OOCXQG6AzQmcrozE7qcZFX9nSKzdEffiCKRj80f4s0Yyc2AEHtBMXUdXliZ/yQC+yFFIBkgL7Vjh1IqRgMxwdhLRx7D52LzRCeCxPZwHrSxhOUjcxpjgfEhffE55Giy7ZNZjNKvG5N2VLfjrBMQCFy8KPzluJSbN0IH26M9yQeGx/651dfP/XO0R9frv5x8eXkrP/+HTtOyt+R232oJxmbSq0OOdQqPhJTNaXD3Gd672pJs3CEIBSOnHGKGphsg2JOxascxnQNc5s8C1MJPS112JINUgOfI2ZoV+B8tDUCLEsUXpZo1kGPPSq4KCEtV45dwluO67xmgWQb/aTbY8PaxfLXLvxvfcy/avE64wyJKpksopNTlyboqGo7jI7yTkhRUnKqR0k7ISXlXZVkxry8wzDXUiEmuCquyqukT1in15+chEgcek42A9Vz6WNmW1tItM01N/SqvaE1NrglJBCUb42burSS/jiNTdNjz6I+CukdOjFUFCbS9uhsN+eCC3eW37oVl7SpeGgmcbTERRkTFmUguxbYXN1E5sJ0TlwlnaPF/6b0BhRqUKhLZ3mvYO58kFxqQm4C/zVIWefgTd2QON2crh69Va9u2RgmslIGvATLaoAjLru7wBOX4Ykbz/77rqJg20ZXxIDRrmEabzuPj+EiiL2XtyoASRerTbrw0aZraOUTZIEAU1EApg9MfzamT6KoYmlMhc+K1lv+eVvuO7atoqsA7Zp/3XYJCwXw8VtYSPizyF7303ZCmm2v+7Wi0mJBrY9+1IawG7HZbO4h00KL9yl0Z/2+EVRseWLlnyDenXuLKvDwxTxcAg/fSg9f9Xegd+feOww8fEEP74CHb6WHr/hr3Ltzb+oGHr6gh0vg4Vvp4Sv+JHoNeHgDiHipLt4AH68bE6/wy/Q1oN0N4N3g0JtNvCvcIKAGLLsBNBscerN5doX7NNSAVDeAVYNDbzat3poN6898O2ZbZ3jWBRmANckAhPf7IOsP3u9bWWJfdymJfR3Yth4y92Db+pnXtvm7zIFmBZlly998FSxwEy1w9alPcy8fgglCas6qdnsFC9zQILji3JHqkSCss25zakP1uA/sbZuV9+pBHtjbNgvD1UM6sDfQLVelW/a1nxg0y/pplipWWFwB6RKkS5AuVyVdikdL0S6PQLsE7RK0yxlWrPwPG8KqKYiXq1rEAhME9XLV6iXYIMiXK5YvwQRBv1y1flmWDcKCKwiYlWI/MDhQMCsFemBwIGFWCuvA4EDDrEjDDHdYBO0StEvQLkG7BO2Su60id0OFblHtsrXUbRVhY0RQFgsoi/wtyR1lQpCugrUHrPpId523/iuGczdrM/JV7wBYgcE1wOIqN6pN3czulNoiuvJNE92RJ6EwJfS6d4l6oRkCiVotiTqFbelL5k/ZdgB9Avo03670xfnTIfAn4E/rx59s0q8JKDsHQ8pHvYBkCyLZmm+QXoo9NcCgamRQm02N+sQskWMCKQJSBKSoMlK0k3pc5JVpaTca/tD+LdKOneA27BY0ItE4QksPm94lgq2M8FiOwF/ryDvsPHlPUmXr3juT4MfIKIVPdMoSwls7eDzRSXg0IlJEAKvtxKw46p8YWH9O4kGdxBNuhCAPePRFVMawko7NnCpeyiOWwQJtLMSQgKLoropPdA6cz7E8MueS6MY53Y8GcRoZKzXZ7ubpMCx8d7FFCZQw4dFNr/hr0Lp4STSWYuLoED+mT7Xvtcm/LL3/ZCicagf2Eqv2TqrvYiMn63pQnVS3xMY03ukzkGo6apqhcXZ/X3jIAgcR5hg3O3vJa4PG/kGzhcitPTgX/wJCAOFeskDIfxb7Nnx0HRcATrl6bw6DeHfwhgcCb4TdP//vRvj2Zu/gzbvZjSY7W9PwwCzD/mfQO0KyNNON9Bj/ZN8kvX6OFbg2vvZuFGfXC9vp/LEn7MDc+BOdwY1BK3KHK58Z8Pwh2dzQHb4TNiHwjN6r/j6/M8qLS76Jics1MX9Rbnk2Vt3gp8YxHPueTlcDUU8nTZ3LAmxLUbIXlRMTQ6pKWSM1tTyWGiepfij0unDg122WGDrz0/7z+uPmDLr+ZQUDbWu9A21tnCDAy+hzQN3n8wfDrqUrcFZQKvIKzpPndJBoAamYixyCi5TqIvM5xg99hY6RWsnMNU3vROrFeWa8PLcpVq05fSpcvy3mUm1wqWIulV6mWQCEqbazfBA2k17AmQTipy0Cx+bXKaY8GIDZRrjIIsiMyU4194+CGK0UVwG0trF+M5+3FIBrqCR3mSI/B6HZV5T9n3NK0PnWv2S/q7YtW40M2f+pjvriiVAaM3BffrrzRHHBMH+8FQMlWHBM/5iQuGyiKfcsTcm/2O/JQZBHEJdjhU60YCiI8R+HzXhJpD4Lrdi/RdVbGv4W1IjmMcRc8NWnxG98FL9x/CmtdvxHFB6EYzVe36Auic74aRqR3hT7SC51l/Ct0jPZHt2asuXdTnBZGp9w8feB+/eTh7GvGT6EuqK48/Jf0JvR+nG4AQA= + H4sIAAAAAAAC/+1daXPbSJL97l9RRHRsUA6KJkhRFjs8jpAo94xibFkrauzYbWkZJaBEYgQCMA4drdD89q3CfZIACZKAmB/aLeKqQtbL42UmgJd3CHHjsaRolmlwv6M/6W+EXux/6R4Fzwjdyp2OxheX3799ufrHl3+NuJa3W8a3RGb7L3R1RswpsYxgp0gMQZc0U1IVdkiww3zW7IuK2MSGaukCCfZpsjWRlDOR7ddSLursP3enFRrWPuCV/nvTcm5JJ78sSScpN+WNP9HxHVZwcHFJTN3sCeHv8R0PRDfcuztsH7R77iRa6cNpWKHCSg6mTVOHCm8ODTR/jDSRSpnCVJJiTBuy3+60O0vcm4lvZZIc7Sq6OXlv/iJiRVFNzADEVtEZlJMlw/TXNJgK3XNrSbJ5xq7Et4KtIZGk3yo9hij2nH5Hpm6R0PapJKZslQRVGaqyqrML6pNb3Oy0UJfn6T/9fgvxe+FLe3d9HNwL+i90LBPdjEwhWEFjeqtiXeTcfa/2/2/eucKPq9WZQf9CI6I/SAJBp97ZyBUr4tvdXrtrj8QRUTJjN8rdSYaA5f8hWB+ZWDe/qYo5pfs79k4bnVeqKpuS5m+UJeXe1qob9+cDOVcf6YY7LBvORW04pGieoMoy1gwiho/Ot0p0LpJ4oQZAcBYotthsGt2D0IYnb9ru72f225NsFK985zAwM/4N3ARmC+sTEjKSUfTlQxo9Sid3jnk75vzNr+5focEkU3YsAVGIjuWk9dSpzFN1MlNQvaKC4tMFdTQIHEAEC/YmVYsqrLvwtiJFxCVjZWLhiWM/ZCwpJnkyo7IypurjV0kh59bsluI5jhr/mG+SIn3Dmrc/kGsrPAU6gMJMB/dJlB6QIGPD+Nt1oHD7U4JFoiM2jX2BHkr0a+7ztfLJoGj4PPpy+eNs+OV39Jvh6NqnD/Z2uv8DvdznsC7PnLvlpuZM5hIydFzYj8Ds8Z023+6HVljHCr227sw2bHz8xbdFlbr6ixXpTiKyOFSVO2kSXSSR3GFLNo34QgmurQtvtK/zRMSwHWz2qAnku9QY8oPeXmQlQ0KxT+NC+14jyznDmiYpk6iaxVUtE2ihy5gCwzynWLIcm4qrhga919STkStfevb5h2Musf81tuU1fnl/mQyNCBKWo5cIn34TuXdzSmc1VWUxeVO++PCtocqWSeLiNUyiJYWG0mTjrSe1FIQoacJ5wLLFRmPCW3Sz8wbQ6UrPufxR5908yd5kgsRSJHt5VM3gUpVdpe6PmkEn+rtJqGCmiTyImcjDBRbyIMOVdOdZyBl+OqVaeqFSk2fYjqezyHpSeX5zAaCoSnjxHR/t7aRGA4d3/tui4cHds7/bMtXwblWXqJHBXiwxpb//omYShzWGLaIlkO+p2sbR2EFIwo7adsM8V81zpnyZcLcNkRHhBgE8jLnGnOln5KaWsLLluHPypDlQVy1FbBrWrCnp2CRNicVlNgkhhmmMTRr8yS860VSd+pW//eea++0X/XXNtShITUmx12DsuhZ7t/v3Nff6Z392s7fXQjQK7/BRu8rdqTo1dbZLkGaEXUAisRkyx6pTmf6BBdNWSz4rHon6VWpQQgifG6QMZYYjdOncLfpBLdSMJEMWg0Lt7XutKMgV9Ydr7bgOt1VrL2L9fn+BRV7V4NtjPBNZpsHpnGE67UF/5WEWei86ymBFB6MRnUWC9s+NOprDnI7mABzNrjgaSt6DxbEJVaojWocLalFLpdFFIWM2boPu67ff+54JfUDrdHxI1ZGqoOYeeiDMgzX5vfKdIOWiyUxPcbbuOsKRJQjEMNAlFQhqUkXa7z89IU+Ixl41XaPndDQsE9Mk+zZDloRsrydQpVdnyQvhJ8kY2gSaiP9LdDWNt3uHhS1OIgHgHvTVSzOn7byQsUBmLrOP2R0nLYj1Y1maKO4xndhuUcePI/PZWT9qRBO+9k6S5e8aFiTTzonEz6dmUWSLnmE2/TziH3qKqJgFIxOiiOkiYgDxs2/p+x+kvxIGLMWfUgWgamHbSSNjOdi9n7FF01TZt9RsI9a5lEN/SqI5jSsSs4fM24ykv5gw+vGwhVpxckothC7dWu4QL1nk2R167l2x5I/v3jiFUG+cCJU0rMy7bap5wj2N3dKmMqFRvZaMjSPaYq/33EkGgZ6Hs5esi6l3d9nJgrwhJ6QRCkZ5G04iBNmB+cHd0cfCeVbfmKTHTlGciJKhydiP2ezCSuQALWxadWkyTUvPeiMy15keQvkWLDIpD4kz6qGk2HVprJBUrdetc/zmlIpIpQZ/Nv5lYcWUZNLstPuUOmaEP2PR0p0AZ0adiGQQQVVEY3xrCffEXDYo4u2g6PYZNWViB180rO/YUdLy01vHzJaO0ZKB+oLozUH9H/4IF/1OjppLa32QGFQbEoPaQMItwCarPkURMchCxMmGEDGoNiIGu4eIQQYihtwSKc9TV0hJZsfuxL0RKNhBwW63I+2TTRfs+KOcsfauJ1JnBCs7UqqLOzpT0KizE4j0QMTx7bNJ5mUtUV4XtzXPtlK70dXwgvo0RxbohMliV8t44MvAl1W7+eQo3ZUNPkJNEJpP5tTgrrmQD3sjHSisAZro0IFS6Q4Uu1ee5SP5j90WOugzQA0+7q3VCbAhu72PTMADOmaHjXk0mDvmar0pzojs5voHzn/0JueP92a6VLI80hF4JOhSWapLpbCvKq9VZVk3Wad+FddtQr8K9KtAvwr0q0C/CvSr5OhXyQrzBtCvshP9KktERptsWll5etC5UmlwDOoFDuhh2SQ2BjuKjdW6WWLpU+hmgQogxOE16GY5ynqVSQfaWXa5ncWgUoVWlgs0Yj2ahdtYqvGaIr6bpdwHFXxPkdsP+1PV72UVi8Z2XljUSxfZQX8H31g0/Hr25fwK/fx++c+v349PRzv/wiKoF+SoF0C5AMoF1S4XzCQljlOgLutpXnyXNVmH4BI9bbGdl3/ePjtdR61CvFm14TgxSTpnZjzAFg+W5TPjPINb++9/mSujOIw1XdWoCZFITiw4t+m4iLZvAedMJ5Xpy+FyRCs1F+BbyMxDsoxkarYgGyjv4ltzMNbDWIgWqRWlhmiH6SFat1+l4tGtapqx1SynemRQmyaTepSPcnWV0iBVIYKXVrV0GkWMqYeVhGcaqc4s08Ly2JSNnK07SZLqTHf86PIK5wxdeJST+8bsXbvUH3rX1QXFCLpyWI42dkILZV6hhSJ9RGvrfY0z3peX+JzQ62s7uTWYKd2PKNheohNmW5vXlnjUE+m/It+ZXX0d7XFF+m67JRcVVoRTI46nxekLtogpaY95kEJ1wFRZ6ZUSwZZZmVqArOyEwpkiqDTUm3hFCQOdPKORPTF0rIh0szMDNAw3GVawUAG0E9rUgHe+Ad6J7RJMu8MDHS2bjhZ7ggFoKdDSFWlpoqcxk5ce7gQvrVFX4xKvGkX5WSpa9gmT7fEK1hW1daFs7+5rRp8qxsrLBU4D1Kms1AXoUy59WmPiYdFTcUFCYh3ph8zP50FeAvISkJeAvAQkIDb8SB2kHSDtUCztcLSgGN7NaPHsfoSkw869+ruCfJxfqsq50deSvympbZF6xWZmE6/M2b6+oot+p2qpjA28i323dHQAOlpvHR0U0NGTbepoH3R0WR3tg47WW0f7+XV0uE0dHYCOLqujA9DReuvoIL+Onm5RRzfFRxtASHdEbPVipBkq+WUH6GcD+CeoZAUJaIZK/rEDbLMBdBNUsoJ8M0Ml/74D5LIB7BJUsoL0MkMl/1He43P+O/3W27UGzWnQnAbNadCcBs1pJTaniUSw3+UHPWrQo7b2HrWjvD1qR9CjVq0etcJpbecFoVBwguaqJcE1AHDVD1xVbAsqnGsEdEE/y2rgGgC46mi6KteJsdGoCxKxb7mDYKMxFkDpLVe+NxpQAZTecsV2o+ETQKn+lUZWcIEqI1QZocoIVUaoMkKVEaqMUGWMVxn5w5xlxkMoM9a3zOi+2A/yqVBnXEMODNAFhcY15sUAXlBpXF+qDNAFpcZqR16QioVaI2AJio1VC6oAS1BtBCztbLnR/+4flBmhzAhlRigzQpmxVmXGk1xfnl/nJ8i7R+mlpqMOlJrq8AVyU9Bo9CcQ6YGIbvRXq6+cLRP71fFj0XX5BHlZeGrsBqA2gJvyP+p1wpYVXbqrjO4oUJDfuHg1vEBDf1mBSQCTACYBTAKYBDCJRV+NzqQSXaASdaESBpVSJOwrwBhSI0SI+t46WygAmQZgpo5MYURXGJlqeRyBekUZawZJhJE52EOmw+JjDqt7sCD11TtI91d8J3BYNBgjcsxjlWSMQwqcZylGDvjRT3fhjaTYdfUxXd6ZMusVllk/ozN9UNjHC47fjEhOxsrEwhOH1smY6UyMYjm+moba59bsljrM1GwOO+abpEjfsJYgG2GPTi2V6YYFn0TpAdkMktooERvTWxXr4v6UYJHoiE1jX7Ap4jX3+Vr5xKL0z6Mvlz/Ohl/Qz++X//z6/fh09OmDvZ3u/0Av9zk0cT9KmJozmVsiANCxQq+tO7MNP+QQKB0TFVDy6lNyYOTAyIGRv3lGrmrw9CA8PVj+04MLS7q9jDzMYDdKuga1aTKpcyLGfXdI8RTMYuLs820a5AYHx06NsGrRMG1WnXZAjFnTQx1m3feZddpZUYKf1trntzMyjrBJyp02MZd3z58zPQhRPL5Ep47qksfJjbilyrqZoEMLUYdqCLsSmwzKx2P5OaL4K28M1od6GszOz1igY0VEfsfqkJlrqC5DdRm4LHDZdXJZbBcr2x0eKG7ZFJeyOZYUtX8C1QWqu3aqm+g5yOS6PPQcVIvqLqAc2Ryh1J7lSDjcoPv67fdVIyLsK4fVkFa1xFJbIlaxFMAasNUAVVy3uEAXy9DFNaY/RpYgEMNAlxQqqEnd737/6cnPvxh7WWmRdSRBqBwEXdI83grZEciOQHYEsiNQ6V9LGgTq/JD8WP9bguNl/oOM9tXBAaQ+qpX6aBb+LJbofp9+PKMBhUTZg6qIydf61Ir88ysWZ9nrfigb4zudzh5SdbS8TEGc23970moJlQq+qrlZ+HtloOPL6fgAdHwndLx678tuFv6QHOj4kjreBx3fCR2v3FvLm4W/8Ac6vqSOD0DHd0LHK/fq+Arw8QYQ8lKVvAFavm1GvtU3+FeAfjeAf4NKvy0CvtUPKVSAbTeAboNKvy2+vdXvWVSAXDeAXYNKvy16Xf5nReKPdKJTFzH2J0ZiL6KChzihTRHaFKFNEdoUK96mKBLBfk0ndCtCt+LauxWP8nYr9qFbsVrdioXz+OnfHIQKHXTTlYvBAWDwzWKwiu1ehVOlAEJoR9reF4ABg2/EEFauX2bzESFklXe7nWPz8R8gbre7DTYf7AHidrsYvvnQDhC3C7VaVqiCOi3UaaFOC3VaqNNCnRbqtFCnza7T8od5C7WHUKitbaHWfdMmJIehUru9TB2AEEq128/eAQqhVrv1hB6AEIq12y/WloVCyCtDtXbDMSBADsq1Gw74AHJQr91weAeQe4MFW/8LqFCohUItFGqhUAuF2poWak+0PDXaMr9/Gf8GRL+TUazrQrGuWsU6aiUUsRkPFU1Bo+GiQKQHIrrhYp0/8LhasLjXQp12p8PXM16s3nceNwC5xu5ibqPQKv+zhSds5dGlCwR0R7GE/FbSq+EFGvqLDnwE+AjwEeAjwEeAj8S7B7t5CUkPCEldCIlBpRSJDAtQjuwgEgLDJQLD2n1bvhRUNQBWW4bVuvjGiIIAmeoKTOOde3U2KRYesIN6HUdWNFabkhkObGjvyNnshcoi1u+dI008CSwpd8ZQyvmXNslMY+FkKMByPEpgesOO0kk+hFNzkiLIlkiOZTkZwLk+Irmdyd+ZpK9wYRfuu8iw5+N+WUR/tglQmmI6u3+48UWYioTEx0e2TshT/FDjXtL+pcujZ0VImba3UqFpx31bSFhUz3XHCUeMjEFkigCSSikcimU/F2NiSTbaLkVsGw9Cm8qZolBvyyoNDKLo9MKqHOeluvocho+xVYkGX67HDu8pigrZ44tuNZArgBgjecoiuNh/sEo1vbRjrsOPGnsm+jVp6Nyx7BdPB+elGvg5Z+8VgOKH9vs0I3/NNf/8v2vu5v1e+/2H/HB1w7HwulBbYKuI8d+edLjo3owdLvAdmYZ2WAa5csxLmOKWrw2+TDJxHxxRJYRfus48DeLRR6h8hP+iAUAGvLMfgZsnxpAgE7Y2KsWoTUuQr+wxk0+DLVy7hasXeQgsTa+d2bbSByjP6LtaxJenRW5ebuNqdCxnuY3fxmMsb8U3xJTAV5yhzJJ2aOj4rgLqY+iCkDypHB/hh+YsSmZ6mhWVh4Ny1zU4Ihy7c8vjU3KP9p/FwxV0Qu5pKzqebu0dTw01xuusQucexymmPIpRSb1JoZcbUqGUkQtqU8CuV9OnHujT9vSpmBY9ylvUolhOKBPHzoFM5bMwvz4dW21aBRXQz4Stpn8HoH8b1L94q/ASsaBomOuPBXOlaVPcS/iwZaLC4unhOQNDfLh7+rRMgGiXBiquTCuGiqXoFQSNoGQFo0a7Qre0aqGSdGtOPdEz+m6J0P1ZsKaYrSprVtLN3svOBKjvvHadV6ecKM2CBiruzump4xT1cZ+fulfjTNXdxkVO0yThPvQSN09qY68YHM6Ac/0gfcrx4R+9TnjPNPi7G/qbFx2bcePNiBWik3n27FHCFz4MXzg8Svcg/CP0qNtHMTxfby4RYfzFOmi8pQm9AJWphv8Q3Sk2prcq1p3LcQ9+LdiGGfdIyP3IxE5LjnPIRCGmXd7+eNg7fPf6/9nBtfMFpgEA istio-workload.json.gz: - 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 + istio-performance.json.gz: + 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 {{- end }} diff --git a/charts/kubezero-metrics/Chart.yaml b/charts/kubezero-metrics/Chart.yaml index 4056def7..9427c633 100644 --- a/charts/kubezero-metrics/Chart.yaml +++ b/charts/kubezero-metrics/Chart.yaml @@ -19,7 +19,7 @@ dependencies: version: ">= 0.1.6" repository: https://cdn.zero-downtime.net/charts/ - name: kube-prometheus-stack - version: 61.9.0 + version: 65.3.1 repository: https://prometheus-community.github.io/helm-charts - name: prometheus-adapter version: 4.11.0 diff --git a/charts/kubezero-metrics/README.md b/charts/kubezero-metrics/README.md index eabde397..88352cae 100644 --- a/charts/kubezero-metrics/README.md +++ b/charts/kubezero-metrics/README.md @@ -1,6 +1,6 @@ # kubezero-metrics -![Version: 0.10.0](https://img.shields.io/badge/Version-0.10.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations. @@ -19,9 +19,9 @@ Kubernetes: `>= 1.26.0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 61.3.2 | -| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.10.0 | -| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.14.0 | +| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 65.3.1 | +| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.11.0 | +| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.15.0 | ## Values diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/Chart.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/Chart.yaml index 014e3085..49548697 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/Chart.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/Chart.yaml @@ -7,7 +7,7 @@ annotations: url: https://github.com/prometheus-operator/kube-prometheus artifacthub.io/operator: "true" apiVersion: v2 -appVersion: v0.75.1 +appVersion: v0.77.1 dependencies: - condition: crds.enabled name: crds @@ -16,19 +16,19 @@ dependencies: - condition: kubeStateMetrics.enabled name: kube-state-metrics repository: https://prometheus-community.github.io/helm-charts - version: 5.21.* + version: 5.26.* - condition: nodeExporter.enabled name: prometheus-node-exporter repository: https://prometheus-community.github.io/helm-charts - version: 4.37.* + version: 4.39.* - condition: grafana.enabled name: grafana repository: https://grafana.github.io/helm-charts - version: 8.3.* + version: 8.5.* - condition: windowsMonitoring.enabled name: prometheus-windows-exporter repository: https://prometheus-community.github.io/helm-charts - version: 0.3.* + version: 0.7.* 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 @@ -62,4 +62,4 @@ sources: - https://github.com/prometheus-community/helm-charts - https://github.com/prometheus-operator/kube-prometheus type: application -version: 61.3.2 +version: 65.3.1 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/README.md b/charts/kubezero-metrics/charts/kube-prometheus-stack/README.md index b83f48d2..daab6246 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/README.md +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/README.md @@ -82,6 +82,83 @@ _See [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) for command documen A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions. +### From 64.x to 65.x + +This version upgrades Prometheus-Operator to v0.77.1 + +Run these commands to update the CRDs before applying the upgrade. + +```console +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml +``` + +### From 63.x to 64.x + +v64 reverts the v63 release. + +All changes mentioned in the v63 release notes must be reverted. + +### From 62.x to 63.x + +Simplify setting empty selectors, by deprecating `*SelectorNilUsesHelmValues` properties. +Instead, setting `*Selector.matchLabels=null` will create an empty selector. + +If you set one of the following properties to `false`, you will have to convert them: + +- `prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues` +- `prometheus.prometheusSpec.probeSelectorNilUsesHelmValues` +- `prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues` +- `prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues` +- `prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues` +- `thanosRuler.thanosRulerSpec.ruleSelectorNilUsesHelmValues` + +For example: + +```yaml +prometheus: + prometheusSpec: + scrapeConfigSelectorNilUsesHelmValues: false +``` + +Becomes: + +```yaml +prometheus: + prometheusSpec: + scrapeConfigSelector: + matchLabels: null +``` + +Note that `externalPrefixNilUsesHelmValues` remains as is. + +### From 61.x to 62.x + +This version upgrades Prometheus-Operator to v0.76.0 + +Run these commands to update the CRDs before applying the upgrade. + +```console +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml +``` + ### From 60.x to 61.x This version upgrades Prometheus-Operator to v0.75.0 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml index eb6b796c..18b1be98 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: alertmanagerconfigs.monitoring.coreos.com spec: @@ -47,9 +47,12 @@ spec: type: object spec: description: |- - AlertmanagerConfigSpec is a specification of the desired behavior of the Alertmanager configuration. - By definition, the Alertmanager configuration only applies to alerts for which - the `namespace` label is equal to the namespace of the AlertmanagerConfig resource. + AlertmanagerConfigSpec is a specification of the desired behavior of the + Alertmanager configuration. + By default, the Alertmanager configuration only applies to alerts for which + the `namespace` label is equal to the namespace of the AlertmanagerConfig + resource (see the `.spec.alertmanagerConfigMatcherStrategy` field of the + Alertmanager CRD). properties: inhibitRules: description: |- @@ -209,6 +212,8 @@ spec: type: array type: object type: array + required: + - name type: object type: array receivers: @@ -239,9 +244,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -271,9 +274,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -286,10 +287,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -313,9 +312,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -339,9 +336,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -368,9 +363,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -382,6 +375,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -403,9 +404,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -427,9 +426,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -454,9 +451,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -472,11 +467,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -486,8 +683,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -508,9 +744,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -532,9 +766,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -560,9 +792,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -584,9 +814,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -612,9 +840,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -623,6 +849,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -665,9 +913,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -692,9 +938,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -767,9 +1011,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -791,9 +1033,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -819,9 +1059,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -843,9 +1081,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -871,9 +1107,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -882,6 +1116,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -921,9 +1177,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -936,10 +1190,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -963,9 +1215,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -989,9 +1239,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1018,9 +1266,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1032,6 +1278,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -1053,9 +1307,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1077,9 +1329,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1104,9 +1354,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1122,11 +1370,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -1136,8 +1586,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -1158,9 +1647,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1182,9 +1669,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1210,9 +1695,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1234,9 +1717,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1262,9 +1743,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1273,6 +1752,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1305,9 +1806,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1350,9 +1849,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1408,9 +1905,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1423,10 +1918,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1450,9 +1943,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1476,9 +1967,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1505,9 +1994,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1519,6 +2006,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -1540,9 +2035,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1564,9 +2057,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1591,9 +2082,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1609,11 +2098,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -1623,8 +2314,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -1645,9 +2375,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1669,9 +2397,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1697,9 +2423,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1721,9 +2445,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1749,9 +2471,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1760,6 +2480,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1877,9 +2619,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1892,10 +2632,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1919,9 +2657,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1945,9 +2681,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1974,9 +2708,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1988,6 +2720,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -2009,9 +2749,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2033,9 +2771,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2060,9 +2796,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2078,11 +2812,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -2092,8 +3028,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -2114,9 +3089,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2138,9 +3111,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2166,9 +3137,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2190,9 +3159,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2218,9 +3185,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2229,6 +3194,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -2280,9 +3267,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2312,9 +3297,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2374,9 +3357,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2389,10 +3370,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -2416,9 +3395,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2442,9 +3419,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2471,9 +3446,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2485,6 +3458,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -2506,9 +3487,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2530,9 +3509,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2557,9 +3534,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2575,11 +3550,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -2589,8 +3766,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -2611,9 +3827,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2635,9 +3849,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2663,9 +3875,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2687,9 +3897,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2715,9 +3923,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2726,6 +3932,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -2769,9 +3997,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2813,9 +4039,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2903,9 +4127,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2968,9 +4190,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2983,10 +4203,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3010,9 +4228,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3036,9 +4252,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3065,9 +4279,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3079,6 +4291,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -3100,9 +4320,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3124,9 +4342,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3151,9 +4367,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3169,11 +4383,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -3183,8 +4599,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -3205,9 +4660,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3229,9 +4682,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3257,9 +4708,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3281,9 +4730,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3309,9 +4756,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3320,6 +4765,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -3394,9 +4861,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3409,10 +4874,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3436,9 +4899,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3462,9 +4923,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3491,9 +4950,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3505,6 +4962,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -3526,9 +4991,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3550,9 +5013,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3577,9 +5038,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3595,11 +5054,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -3609,8 +5270,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -3631,9 +5331,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3655,9 +5353,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3683,9 +5379,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3707,9 +5401,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3735,9 +5427,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3746,6 +5436,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -3780,9 +5492,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3815,9 +5525,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3860,7 +5568,6 @@ spec: The secret needs to be in the same namespace as the AlertmanagerConfig object and accessible by the Prometheus Operator. - Either `botToken` or `botTokenFile` is required. properties: key: @@ -3873,9 +5580,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3889,7 +5594,6 @@ spec: File to read the Telegram bot token from. It is mutually exclusive with `botToken`. Either `botToken` or `botTokenFile` is required. - It requires Alertmanager >= v0.26.0. type: string chatID: @@ -3920,9 +5624,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3935,10 +5637,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3962,9 +5662,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3988,9 +5686,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4017,9 +5713,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4031,6 +5725,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -4052,9 +5754,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4076,9 +5776,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4103,9 +5801,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4121,11 +5817,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -4135,8 +6033,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -4157,9 +6094,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4181,9 +6116,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4209,9 +6142,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4233,9 +6164,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4261,9 +6190,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4272,6 +6199,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -4290,6 +6239,8 @@ spec: sendResolved: description: Whether to notify about resolved alerts. type: boolean + required: + - chatID type: object type: array victoropsConfigs: @@ -4315,9 +6266,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4370,9 +6319,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4385,10 +6332,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -4412,9 +6357,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4438,9 +6381,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4467,9 +6408,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4481,6 +6420,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -4502,9 +6449,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4526,9 +6471,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4553,9 +6496,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4571,11 +6512,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -4585,8 +6728,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -4607,9 +6789,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4631,9 +6811,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4659,9 +6837,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4683,9 +6859,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4711,9 +6885,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4722,6 +6894,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -4780,9 +6974,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4795,10 +6987,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -4822,9 +7012,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4848,9 +7036,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4877,9 +7063,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4891,6 +7075,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -4912,9 +7104,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4936,9 +7126,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4963,9 +7151,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4981,11 +7167,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -4995,8 +7383,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -5017,9 +7444,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5041,9 +7466,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5069,9 +7492,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5093,9 +7514,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5121,9 +7540,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5132,6 +7549,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -5179,9 +7618,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5194,10 +7631,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -5221,9 +7656,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5247,9 +7680,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5276,9 +7707,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5290,6 +7719,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -5311,9 +7748,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5335,9 +7770,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5362,9 +7795,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5380,11 +7811,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5394,8 +8027,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -5416,9 +8088,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5440,9 +8110,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5468,9 +8136,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5492,9 +8158,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5520,9 +8184,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5531,6 +8193,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -5567,9 +8251,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5605,9 +8287,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5643,9 +8323,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5658,10 +8336,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -5685,9 +8361,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5711,9 +8385,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5740,9 +8412,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5754,6 +8424,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -5775,9 +8453,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5799,9 +8475,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5826,9 +8500,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5844,11 +8516,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5858,8 +8732,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -5880,9 +8793,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5904,9 +8815,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5932,9 +8841,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5956,9 +8863,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5984,9 +8889,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5995,6 +8898,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml index b0443772..da2e338e 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: alertmanagers.monitoring.coreos.com spec: @@ -51,7 +51,12 @@ spec: name: v1 schema: openAPIV3Schema: - description: Alertmanager describes an Alertmanager cluster. + description: |- + The `Alertmanager` custom resource definition (CRD) defines a desired [Alertmanager](https://prometheus.io/docs/alerting) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage and many more. + + For each `Alertmanager` resource, the Operator deploys a `StatefulSet` in the same namespace. When there are two or more configured replicas, the Operator runs the Alertmanager instances in high-availability mode. + + The resource defines via label and namespace selectors which `AlertmanagerConfig` objects should be associated to the deployed Alertmanager instances. properties: apiVersion: description: |- @@ -346,7 +351,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -361,7 +366,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -522,7 +527,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -537,7 +542,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -691,7 +696,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -706,7 +711,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -867,7 +872,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -882,7 +887,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -963,15 +968,17 @@ spec: type: object alertmanagerConfigMatcherStrategy: description: |- - The AlertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects match the alerts. - In the future more options may be added. + AlertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects + process incoming alerts. properties: type: default: OnNamespace description: |- - If set to `OnNamespace`, the operator injects a label matcher matching the namespace of the AlertmanagerConfig object for all its routes and inhibition rules. - `None` will not add any additional matchers other than the ones specified in the AlertmanagerConfig. - Default is `OnNamespace`. + AlertmanagerConfigMatcherStrategyType defines the strategy used by + AlertmanagerConfig objects to match alerts in the routes and inhibition + rules. + + The default value is `OnNamespace`. enum: - OnNamespace - None @@ -1071,10 +1078,8 @@ spec: description: |- alertmanagerConfiguration specifies the configuration of Alertmanager. - If defined, it takes precedence over the `configSecret` field. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. properties: @@ -1102,9 +1107,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1117,10 +1120,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1144,9 +1145,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1170,9 +1169,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1199,9 +1196,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1213,6 +1208,14 @@ spec: followRedirects: description: FollowRedirects specifies whether the client should follow HTTP 3xx redirects. type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string oauth2: description: OAuth2 client credentials used to fetch a token for the targets. properties: @@ -1234,9 +1237,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1258,9 +1259,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1285,9 +1284,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1303,11 +1300,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -1317,8 +1516,47 @@ spec: - clientSecret - tokenUrl type: object - proxyURL: - description: Optional proxy URL. + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ type: string tlsConfig: description: TLS configuration for the client. @@ -1339,9 +1577,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1363,9 +1599,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1391,9 +1625,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1415,9 +1647,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1443,9 +1673,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1454,6 +1682,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1472,9 +1722,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1496,9 +1744,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1530,9 +1776,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1560,9 +1804,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1584,9 +1826,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1651,9 +1891,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1675,9 +1913,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1737,13 +1973,11 @@ spec: Alertmanager object, which contains the configuration for this Alertmanager instance. If empty, it defaults to `alertmanager-`. - The Alertmanager configuration should be available under the `alertmanager.yaml` key. Additional keys from the original secret are copied to the generated secret and mounted into the `/etc/alertmanager/config` directory in the `alertmanager` container. - If either the secret or the `alertmanager.yaml` key is missing, the operator provisions a minimal Alertmanager configuration with one empty receiver (effectively dropping alert notifications). @@ -1827,9 +2061,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1888,9 +2120,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1928,9 +2158,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -1950,9 +2178,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -2226,11 +2452,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2432,11 +2658,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2579,11 +2805,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -2594,6 +2818,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -2715,7 +2945,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -2793,7 +3023,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2872,11 +3101,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3081,10 +3310,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -3092,11 +3319,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -3137,7 +3362,6 @@ spec: scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. - It requires Alertmanager >= 0.27.0. items: type: string @@ -3210,9 +3434,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -3297,9 +3519,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3358,9 +3578,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3398,9 +3616,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -3420,9 +3636,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -3696,11 +3910,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3902,11 +4116,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4049,11 +4263,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -4064,6 +4276,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -4185,7 +4403,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -4263,7 +4481,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4342,11 +4559,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4551,10 +4768,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -4562,11 +4777,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -4644,7 +4857,6 @@ spec: description: |- PodMetadata configures labels and annotations which are propagated to the Alertmanager pods. - The following items are reserved and cannot be overridden: * "alertmanager" label, set to the name of the Alertmanager instance. * "app.kubernetes.io/instance" label, set to the name of the Alertmanager instance. @@ -4705,11 +4917,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -4720,6 +4930,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -4809,12 +5025,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -4897,7 +5111,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4907,18 +5120,28 @@ spec: type: object supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -5035,7 +5258,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -5045,11 +5267,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -5244,7 +5464,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -5495,7 +5715,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -5524,7 +5744,7 @@ spec: that it does not recognizes, then it should ignore that update and let other controllers handle it. type: string - description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -5534,7 +5754,7 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object capacity: additionalProperties: @@ -5572,7 +5792,16 @@ spec: status: type: string type: - description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type + description: |- + PersistentVolumeClaimConditionType defines the condition of PV claim. + Valid values are: + - "Resizing", "FileSystemResizePending" + + If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected: + - "ControllerResizeError", "NodeResizeError" + + If VolumeAttributesClass feature gate is enabled, then following additional values can be expected: + - "ModifyVolumeError", "ModifyingVolume" type: string required: - status @@ -5586,13 +5815,13 @@ spec: description: |- currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). type: string modifyVolumeStatus: description: |- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). properties: status: description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately." @@ -5717,7 +5946,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -5757,7 +5985,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -5775,7 +6002,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -5787,7 +6013,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -5869,10 +6094,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -5880,11 +6103,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -5924,7 +6145,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -5960,6 +6180,7 @@ spec: description: diskURI is the URI of data disk in the blob storage type: string fsType: + default: ext4 description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -5969,6 +6190,7 @@ spec: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string readOnly: + default: false description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. @@ -6032,9 +6254,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6076,9 +6296,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6149,9 +6367,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -6187,9 +6403,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6314,7 +6528,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -6325,17 +6538,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -6349,7 +6559,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -6359,11 +6568,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -6558,7 +6765,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -6581,7 +6788,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -6646,9 +6852,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6679,7 +6883,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6759,9 +6962,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -6778,6 +6978,41 @@ spec: required: - path type: object + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -6796,7 +7031,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -6808,6 +7042,7 @@ spec: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: + default: default description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). @@ -6839,9 +7074,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6954,23 +7187,24 @@ spec: format: int32 type: integer sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. properties: clusterTrustBundle: description: |- ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7098,9 +7332,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -7217,9 +7449,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional field specify whether the Secret or its key must be defined @@ -7305,7 +7535,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -7313,6 +7542,7 @@ spec: More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: + default: /etc/ceph/keyring description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. @@ -7327,6 +7557,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd description: |- pool is the rados pool name. Default is rbd. @@ -7352,13 +7583,12 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic user: + default: admin description: |- user is the rados user name. Default is admin. @@ -7372,6 +7602,7 @@ spec: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: + default: xfs description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -7401,9 +7632,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -7411,6 +7640,7 @@ spec: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: + default: ThinProvisioned description: |- storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. @@ -7520,9 +7750,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -7653,9 +7881,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7677,9 +7903,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7689,6 +7913,11 @@ spec: type: object x-kubernetes-map-type: atomic type: object + certFile: + description: |- + Path to the TLS certificate file in the Prometheus container for the server. + Mutually exclusive with `cert`. + type: string cipherSuites: description: |- List of supported cipher suites for TLS versions up to TLS 1.2. If empty, @@ -7713,9 +7942,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7737,9 +7964,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7755,6 +7980,11 @@ spec: For more detail on clientAuth options: https://golang.org/pkg/crypto/tls/#ClientAuthType type: string + clientCAFile: + description: |- + Path to the CA certificate file for client certificate authentication to the server. + Mutually exclusive with `client_ca`. + type: string curvePreferences: description: |- Elliptic curves that will be used in an ECDHE handshake, in preference @@ -7763,6 +7993,11 @@ spec: items: type: string type: array + keyFile: + description: |- + Path to the TLS key file in the Prometheus container for the server. + Mutually exclusive with `keySecret`. + type: string keySecret: description: Secret containing the TLS key for the server. properties: @@ -7776,9 +8011,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7800,9 +8033,6 @@ spec: cipher suite. If true then the server's preference, as expressed in the order of elements in cipherSuites, is used. type: boolean - required: - - cert - - keySecret type: object type: object type: object @@ -7870,6 +8100,9 @@ spec: object (their labels match the selector). format: int32 type: integer + selector: + description: The selector used to match the pods targeted by this Alertmanager object. + type: string unavailableReplicas: description: Total number of unavailable pods targeted by this Alertmanager object. format: int32 @@ -7893,4 +8126,8 @@ spec: served: true storage: true subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas status: {} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml index 79da1ab1..57b89669 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: podmonitors.monitoring.coreos.com spec: @@ -24,7 +24,15 @@ spec: - name: v1 schema: openAPIV3Schema: - description: PodMonitor defines monitoring for a set of pods. + description: |- + The `PodMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of pods. + Among other things, it allows to specify: + * The pods to scrape via label selectors. + * The container ports to scrape. + * Authentication credentials to use. + * Target and metric relabeling. + + `Prometheus` and `PrometheusAgent` objects select `PodMonitor` objects using label and namespace selectors. properties: apiVersion: description: |- @@ -51,13 +59,15 @@ spec: `attachMetadata` defines additional metadata which is added to the discovered targets. - - It requires Prometheus >= v2.37.0. + It requires Prometheus >= v2.35.0. properties: node: description: |- - When set to true, Prometheus must have the `get` permission on the - `Nodes` objects. + When set to true, Prometheus attaches node metadata to the discovered + targets. + + The Prometheus service account must have the `list` and `watch` + permissions on the `Nodes` objects. type: boolean type: object bodySizeLimit: @@ -65,7 +75,6 @@ spec: When defined, bodySizeLimit specifies a job level limit on the size of uncompressed response body that will be accepted by Prometheus. - It requires Prometheus >= v2.28.0. pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ type: string @@ -75,12 +84,10 @@ spec: `jobLabel` selects the label from the associated Kubernetes `Pod` object which will be used as the `job` label for all metrics. - For example if `jobLabel` is set to `foo` and the Kubernetes `Pod` object is labeled with `foo: bar`, then Prometheus adds the `job="bar"` label to all ingested metrics. - If the value of this field is empty, the `job` label of the metrics defaults to the namespace and name of the PodMonitor object (e.g. `/`). type: string @@ -89,7 +96,6 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. format: int64 type: integer @@ -97,7 +103,6 @@ spec: description: |- Per-scrape limit on number of labels that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer @@ -105,7 +110,6 @@ spec: description: |- Per-scrape limit on length of labels name that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer @@ -113,14 +117,13 @@ spec: description: |- Per-scrape limit on length of labels value that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer namespaceSelector: description: |- - Selector to select which namespaces the Kubernetes `Pods` objects - are discovered from. + `namespaceSelector` defines in which namespace(s) Prometheus should discover the pods. + By default, the pods are discovered in the same namespace as the `PodMonitor` object but it is possible to select pods across different/all namespaces. properties: any: description: |- @@ -134,7 +137,7 @@ spec: type: array type: object podMetricsEndpoints: - description: List of endpoints part of this PodMonitor. + description: Defines how to scrape metrics from the selected pods. items: description: |- PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by @@ -145,7 +148,6 @@ spec: `authorization` configures the Authorization header credentials to use when scraping the target. - Cannot be set at the same time as `basicAuth`, or `oauth2`. properties: credentials: @@ -161,9 +163,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -176,10 +176,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -188,7 +186,6 @@ spec: `basicAuth` configures the Basic Authentication credentials to use when scraping the target. - Cannot be set at the same time as `authorization`, or `oauth2`. properties: password: @@ -206,9 +203,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -232,9 +227,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -250,7 +243,6 @@ spec: token for scraping targets. The secret needs to be in the same namespace as the PodMonitor object and readable by the Prometheus Operator. - Deprecated: use `authorization` instead. properties: key: @@ -263,9 +255,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -282,10 +272,8 @@ spec: When true, the pods which are not running (e.g. either in Failed or Succeeded state) are dropped during the target discovery. - If unset, the filtering is enabled. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase type: boolean followRedirects: @@ -307,7 +295,6 @@ spec: description: |- Interval at which Prometheus scrapes the metrics from the target. - If empty, Prometheus uses the global scrape interval. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string @@ -320,7 +307,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -328,11 +314,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -362,7 +346,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -374,7 +357,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -396,11 +378,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -409,10 +389,8 @@ spec: description: |- `oauth2` configures the OAuth2 settings to use when scraping the target. - It requires Prometheus >= 2.27.0. - Cannot be set at the same time as `authorization`, or `basicAuth`. properties: clientId: @@ -433,9 +411,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -457,9 +433,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -484,9 +458,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -502,11 +474,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -527,14 +701,12 @@ spec: description: |- HTTP path from which to scrape for metrics. - If empty, Prometheus uses the default value (e.g. `/metrics`). type: string port: description: |- Name of the Pod port which this endpoint refers to. - It takes precedence over `targetPort`. type: string proxyUrl: @@ -547,20 +719,16 @@ spec: `relabelings` configures the relabeling rules to apply the target's metadata labels. - The Operator automatically adds relabelings for a few standard Kubernetes fields. - The original scrape job's name is available via the `__tmp_prometheus_job_name` label. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -568,11 +736,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -602,7 +768,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -614,7 +779,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -636,11 +800,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -649,11 +811,9 @@ spec: description: |- HTTP scheme to use for scraping. - `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. - If empty, Prometheus uses the default value `http`. enum: - http @@ -663,7 +823,6 @@ spec: description: |- Timeout after which Prometheus considers the scrape to be failed. - If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ @@ -676,7 +835,6 @@ spec: Name or number of the target port of the `Pod` object behind the Service, the port must be specified with container port property. - Deprecated: use 'port' instead. x-kubernetes-int-or-string: true tlsConfig: @@ -698,9 +856,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -722,9 +878,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -750,9 +904,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -774,9 +926,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -802,9 +952,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -813,6 +961,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -823,7 +993,6 @@ spec: the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false. - It requires Prometheus >= v2.48.0. type: boolean type: object @@ -850,10 +1019,8 @@ spec: `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -872,7 +1039,7 @@ spec: type: array x-kubernetes-list-type: set selector: - description: Label selector to select the Kubernetes `Pod` objects. + description: Label selector to select the Kubernetes `Pod` objects to scrape metrics from. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml index 45ade340..c5426d83 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: probes.monitoring.coreos.com spec: @@ -24,7 +24,14 @@ spec: - name: v1 schema: openAPIV3Schema: - description: Probe defines monitoring for a set of static targets or ingresses. + description: |- + The `Probe` custom resource definition (CRD) defines how to scrape metrics from prober exporters such as the [blackbox exporter](https://github.com/prometheus/blackbox_exporter). + + The `Probe` resource needs 2 pieces of information: + * The list of probed addresses which can be defined statically or by discovering Kubernetes Ingress objects. + * The prober which exposes the availability of probed endpoints (over various protocols such HTTP, TCP, ICMP, ...) as Prometheus metrics. + + `Prometheus` and `PrometheusAgent` objects select `Probe` objects using label and namespace selectors. properties: apiVersion: description: |- @@ -62,9 +69,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -77,10 +82,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -104,9 +107,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -130,9 +131,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -158,9 +157,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -183,7 +180,6 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. format: int64 type: integer @@ -212,7 +208,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -220,11 +215,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -254,7 +247,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -266,7 +258,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -288,11 +279,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -324,9 +313,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -348,9 +335,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -375,9 +360,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -393,11 +376,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -449,10 +634,8 @@ spec: `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -517,7 +700,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -525,11 +707,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -559,7 +739,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -571,7 +750,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -593,11 +771,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -669,7 +845,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -677,11 +852,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -711,7 +884,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -723,7 +895,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -745,11 +916,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -780,9 +949,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -804,9 +971,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -832,9 +997,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -856,9 +1019,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -884,9 +1045,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -895,6 +1054,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml index 64c09c60..b2d885d8 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: prometheusagents.monitoring.coreos.com spec: @@ -51,7 +51,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PrometheusAgent defines a Prometheus agent deployment. + description: |- + The `PrometheusAgent` custom resource definition (CRD) defines a desired [Prometheus Agent](https://prometheus.io/blog/2021/11/16/agent/) setup to run in a Kubernetes cluster. + + The CRD is very similar to the `Prometheus` CRD except for features which aren't available in agent mode like rule evaluation, persistent storage and Thanos sidecar. properties: apiVersion: description: |- @@ -79,13 +82,11 @@ spec: description: |- AdditionalArgs allows setting additional arguments for the 'prometheus' container. - It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet. The arguments are passed as-is to the Prometheus container which may cause issues if they are invalid or not supported by the given Prometheus version. - In case of an argument conflict (e.g. an argument which is already set by the operator itself) or when providing an invalid argument, the reconciliation will fail and an error will be logged. @@ -127,9 +128,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -404,7 +403,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -419,7 +418,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -580,7 +579,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -595,7 +594,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -749,7 +748,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -764,7 +763,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -925,7 +924,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -940,7 +939,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1031,7 +1030,6 @@ spec: description: |- Authorization section for the API server. - Cannot be set at the same time as `basicAuth`, `bearerToken`, or `bearerTokenFile`. properties: @@ -1048,9 +1046,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1066,10 +1062,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1077,7 +1071,6 @@ spec: description: |- BasicAuth configuration for the API server. - Cannot be set at the same time as `authorization`, `bearerToken`, or `bearerTokenFile`. properties: @@ -1096,9 +1089,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1122,9 +1113,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1139,17 +1128,14 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File to read bearer token for accessing apiserver. - Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string host: @@ -1176,9 +1162,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1200,9 +1184,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1231,9 +1213,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1255,9 +1235,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1289,9 +1267,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1300,6 +1276,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1328,7 +1326,6 @@ spec: AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod. If the field isn't set, the operator mounts the service account token by default. - **Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery. It is possible to use strategic merge patch to project the service account token into the 'prometheus' container. type: boolean @@ -1337,7 +1334,6 @@ spec: BodySizeLimit defines per-scrape on response body size. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit. pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ @@ -1360,13 +1356,11 @@ spec: container if they share the same name and modifications are done via a strategic merge patch. - The names of containers managed by the operator are: * `prometheus` * `config-reloader` * `thanos-sidecar` - Overriding containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. @@ -1439,9 +1433,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1500,9 +1492,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1540,9 +1530,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -1562,9 +1550,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -1838,11 +1824,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2044,11 +2030,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2191,11 +2177,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -2206,6 +2190,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -2327,7 +2317,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -2405,7 +2395,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2484,11 +2473,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2693,10 +2682,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -2704,11 +2691,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -2746,12 +2731,10 @@ spec: description: |- Enable access to Prometheus feature flags. By default, no features are enabled. - Enabling features which are disabled by default is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. - For more information see https://prometheus.io/docs/prometheus/latest/feature_flags/ items: minLength: 1 @@ -2763,14 +2746,12 @@ spec: Enable Prometheus to be used as a receiver for the Prometheus remote write protocol. - WARNING: This is not considered an efficient way of ingesting samples. Use it with caution for specific low-volume use cases. It is not suitable for replacing the ingestion via scraping and turning Prometheus into a push-based metrics collection system. For more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver - It requires Prometheus >= v2.33.0. type: boolean enforcedBodySizeLimit: @@ -2780,10 +2761,8 @@ spec: Targets responding with a body larger than this many bytes will cause the scrape to fail. - It requires Prometheus >= v2.28.0. - When both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus >= 2.45.0) or the enforcedBodySizeLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`. @@ -2799,10 +2778,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is greater than zero and less than `spec.enforcedKeepDroppedTargets`. - It requires Prometheus >= v2.47.0. - When both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply: * Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus >= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`. @@ -2817,10 +2794,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is greater than zero and less than `spec.enforcedLabelLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus >= 2.45.0) or the enforcedLabelLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`. @@ -2835,10 +2810,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is greater than zero and less than `spec.enforcedLabelNameLengthLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus >= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`. @@ -2853,10 +2826,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is greater than zero and less than `spec.enforcedLabelValueLengthLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus >= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`. @@ -2868,16 +2839,13 @@ spec: description: |- When not empty, a label will be added to: - 1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects. 2. All metrics generated from recording rules defined in `PrometheusRule` objects. 3. All alerts generated from alerting rules defined in `PrometheusRule` objects. 4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects. - The label will not added for objects referenced in `spec.excludedFromEnforcement`. - The label's name is this field's value. The label's value is the namespace of the `ServiceMonitor`, `PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object. @@ -2890,11 +2858,9 @@ spec: unless `spec.sampleLimit` is greater than zero and less than `spec.enforcedSampleLimit`. - It is meant to be used by admins to keep the overall number of samples/series under a desired limit. - When both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus >= 2.45.0) or the enforcedSampleLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`. @@ -2909,11 +2875,9 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is greater than zero and less than `spec.enforcedTargetLimit`. - It is meant to be used by admins to to keep the overall number of targets under a desired limit. - When both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus >= 2.45.0) or the enforcedTargetLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`. @@ -2926,7 +2890,6 @@ spec: List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects to be excluded from enforcing a namespace label of origin. - It is only applicable if `spec.enforcedNamespaceLabel` set to true. items: description: ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object. @@ -3004,11 +2967,9 @@ spec: description: |- Use the host's network namespace if true. - Make sure to understand the security implications if you want to enable it (https://kubernetes.io/docs/concepts/configuration/overview/). - When hostNetwork is enabled, this will set the DNS policy to `ClusterFirstWithHostNet` automatically. type: boolean @@ -3024,11 +2985,9 @@ spec: Container image name for Prometheus. If specified, it takes precedence over the `spec.baseImage`, `spec.tag` and `spec.sha` fields. - Specifying `spec.version` is still necessary to ensure the Prometheus Operator knows which version of Prometheus is being configured. - If neither `spec.image` nor `spec.baseImage` are defined, the operator will use the latest upstream version of Prometheus available at the time when the operator was released. @@ -3060,9 +3019,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -3078,11 +3035,9 @@ spec: containers if they share the same name and modifications are done via a strategic merge patch. - The names of init container name managed by the operator are: * `init-config-reloader`. - Overriding init containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. @@ -3155,9 +3110,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3216,9 +3169,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3256,9 +3207,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -3278,9 +3227,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -3554,11 +3501,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3760,11 +3707,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3907,11 +3854,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -3922,6 +3867,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -4043,7 +3994,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -4121,7 +4072,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4200,11 +4150,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4409,10 +4359,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -4420,11 +4368,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -4463,10 +4409,8 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets. format: int64 @@ -4476,7 +4420,6 @@ spec: Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit. format: int64 @@ -4486,7 +4429,6 @@ spec: Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit. format: int64 @@ -4496,7 +4438,6 @@ spec: Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit. format: int64 @@ -4535,7 +4476,6 @@ spec: without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) - This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate. format: int32 @@ -4545,7 +4485,6 @@ spec: Mode defines how the Prometheus operator deploys the PrometheusAgent pod(s). For now this field has no effect. - (Alpha) Using this field requires the `PrometheusAgentDaemonSet` feature gate to be enabled. enum: - StatefulSet @@ -4556,6 +4495,20 @@ spec: type: string description: Defines on which Nodes the Pods are scheduled. type: object + otlp: + description: |- + Settings related to the OTLP receiver feature. + It requires Prometheus >= v2.54.0. + properties: + promoteResourceAttributes: + description: List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none. + items: + minLength: 1 + type: string + minItems: 1 + type: array + x-kubernetes-list-type: set + type: object overrideHonorLabels: description: |- When true, Prometheus resolves label conflicts by renaming the labels in the scraped data @@ -4602,7 +4555,6 @@ spec: description: |- PodMetadata configures labels and annotations which are propagated to the Prometheus pods. - The following items are reserved and cannot be overridden: * "prometheus" label, set to the name of the Prometheus object. * "app.kubernetes.io/instance" label, set to the name of the Prometheus object. @@ -4693,7 +4645,6 @@ spec: PodMonitors to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -4812,7 +4763,6 @@ spec: Probes to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -4869,7 +4819,6 @@ spec: name. The external label will _not_ be added when the field is set to the empty string (`""`). - Default: "prometheus" type: string reloadStrategy: @@ -4891,10 +4840,8 @@ spec: description: |- Authorization section for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`. properties: credentials: @@ -4910,9 +4857,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4928,10 +4873,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -4939,10 +4882,8 @@ spec: description: |- AzureAD for the URL. - It requires Prometheus >= v2.45.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`. properties: cloud: @@ -4968,7 +4909,6 @@ spec: OAuth defines the oauth config that is being used to authenticate. Cannot be set at the same time as `managedIdentity` or `sdk`. - It requires Prometheus >= v2.48.0. properties: clientId: @@ -4988,9 +4928,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5015,7 +4953,6 @@ spec: See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication Cannot be set at the same time as `oauth` or `managedIdentity`. - It requires Prometheus >= 2.52.0. properties: tenantId: @@ -5028,7 +4965,6 @@ spec: description: |- BasicAuth configuration for the URL. - Cannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`. properties: password: @@ -5046,9 +4982,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5072,9 +5006,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5089,14 +5021,12 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File from which to read bearer token for the URL. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string enableHTTP2: @@ -5106,7 +5036,6 @@ spec: description: |- Configure whether HTTP requests follow HTTP 3xx redirects. - It requires Prometheus >= v2.26.0. type: boolean headers: @@ -5116,7 +5045,6 @@ spec: Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. - It requires Prometheus >= v2.25.0. type: object metadataConfig: @@ -5135,7 +5063,6 @@ spec: The name of the remote write queue, it must be unique if specified. The name is used in metrics and logging in order to differentiate queues. - It requires Prometheus >= v2.15.0. type: string noProxy: @@ -5144,17 +5071,14 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- OAuth2 configuration for the URL. - It requires Prometheus >= v2.27.0. - Cannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`. properties: clientId: @@ -5175,9 +5099,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5199,9 +5121,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5226,9 +5146,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5244,11 +5162,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5273,9 +5393,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5289,24 +5407,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string queueConfig: @@ -5345,7 +5456,6 @@ spec: description: |- Retry upon receiving a 429 status code from the remote-write storage. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: boolean @@ -5366,7 +5476,6 @@ spec: exemplar-storage itself must be enabled using the `spec.enableFeature` option for exemplars to be scraped in the first place. - It requires Prometheus >= v2.27.0. type: boolean sendNativeHistograms: @@ -5374,17 +5483,14 @@ spec: Enables sending of native histograms, also known as sparse histograms over remote write. - It requires Prometheus >= v2.40.0. type: boolean sigv4: description: |- Sigv4 allows to configures AWS's Signature Verification 4 for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`. properties: accessKey: @@ -5402,9 +5508,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5437,9 +5541,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5468,9 +5570,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5492,9 +5592,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5523,9 +5621,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5547,9 +5643,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5581,9 +5675,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5592,6 +5684,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -5606,7 +5720,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -5614,11 +5727,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -5648,7 +5759,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -5660,7 +5770,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -5682,11 +5791,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -5701,7 +5808,6 @@ spec: The external label will _not_ be added when the field is set to the empty string (`""`). - Default: "prometheus_replica" type: string replicas: @@ -5710,7 +5816,6 @@ spec: `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. - Default: 1 format: int32 type: integer @@ -5722,11 +5827,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -5737,6 +5840,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -5773,7 +5882,6 @@ spec: description: |- The route prefix Prometheus registers HTTP handlers for. - This is useful when using `spec.externalURL`, and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true, but the server serves requests under a different route prefix. For example @@ -5784,7 +5892,6 @@ spec: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 @@ -5794,36 +5901,46 @@ spec: List of scrape classes to expose to scraping objects such as PodMonitors, ServiceMonitors, Probes and ScrapeConfigs. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. items: properties: + attachMetadata: + description: |- + AttachMetadata configures additional metadata to the discovered targets. + When the scrape object defines its own configuration, it takes + precedence over the scrape class configuration. + properties: + node: + description: |- + When set to true, Prometheus attaches node metadata to the discovered + targets. + + The Prometheus service account must have the `list` and `watch` + permissions on the `Nodes` objects. + type: boolean + type: object default: description: |- Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name. - Only one scrape class can be set as the default. type: boolean metricRelabelings: description: |- MetricRelabelings configures the relabeling rules to apply to all samples before ingestion. - The Operator adds the scrape class metric relabelings defined here. Then the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs. Then the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -5831,11 +5948,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -5865,7 +5980,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -5877,7 +5991,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -5899,11 +6012,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -5916,20 +6027,17 @@ spec: description: |- Relabelings configures the relabeling rules to apply to all scrape targets. - The Operator automatically adds relabelings for a few standard Kubernetes fields like `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`. Then the Operator adds the scrape class relabelings defined here. Then the Operator adds the target-specific relabelings defined in the scrape object. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -5937,11 +6045,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -5971,7 +6077,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -5983,7 +6088,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -6005,11 +6109,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -6020,7 +6122,6 @@ spec: scrape objects define their own CA, certificate and/or key, they take precedence over the corresponding scrape class fields. - For now only the `caFile`, `certFile` and `keyFile` fields are supported. properties: ca: @@ -6039,9 +6140,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6063,9 +6162,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6094,9 +6191,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6118,9 +6213,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6152,9 +6245,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6163,6 +6254,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -6180,7 +6293,6 @@ spec: matches all namespaces. A null label selector matches the current namespace only. - Note that the ScrapeConfig custom resource definition is currently at Alpha level. properties: matchExpressions: @@ -6229,7 +6341,6 @@ spec: ScrapeConfigs to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -6239,7 +6350,6 @@ spec: of the custom resource definition. It is recommended to use `spec.additionalScrapeConfigs` instead. - Note that the ScrapeConfig custom resource definition is currently at Alpha level. properties: matchExpressions: @@ -6288,7 +6398,6 @@ spec: description: |- Interval between consecutive scrapes. - Default: "30s" pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string @@ -6297,10 +6406,8 @@ spec: The protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -6331,6 +6438,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: set securityContext: description: |- SecurityContext holds pod-level security attributes and common container settings. @@ -6365,12 +6473,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6453,7 +6559,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6463,18 +6568,28 @@ spec: type: object supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -6532,6 +6647,17 @@ spec: ServiceAccountName is the name of the ServiceAccount to use to run the Prometheus Pods. type: string + serviceDiscoveryRole: + description: |- + Defines the service discovery role used to discover targets from + `ServiceMonitor` objects and Alertmanager endpoints. + + If set, the value should be either "Endpoints" or "EndpointSlice". + If unset, the operator assumes the "Endpoints" role. + enum: + - Endpoints + - EndpointSlice + type: string serviceMonitorNamespaceSelector: description: |- Namespaces to match for ServicedMonitors discovery. An empty label selector @@ -6584,7 +6710,6 @@ spec: ServiceMonitors to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -6640,18 +6765,15 @@ spec: Number of shards to distribute targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. - Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved. Increasing shards will not reshard data either but it will continue to be available from the same instances. To query globally, use Thanos sidecar and Thanos querier or remote write data to a central location. - Sharding is performed on the content of the `__address__` target meta-label for PodMonitors and ServiceMonitors and `__param_target__` for Probes. - Default: 1 format: int32 type: integer @@ -6705,7 +6827,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -6715,11 +6836,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -6914,7 +7033,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7165,7 +7284,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7194,7 +7313,7 @@ spec: that it does not recognizes, then it should ignore that update and let other controllers handle it. type: string - description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -7204,7 +7323,7 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object capacity: additionalProperties: @@ -7242,7 +7361,16 @@ spec: status: type: string type: - description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type + description: |- + PersistentVolumeClaimConditionType defines the condition of PV claim. + Valid values are: + - "Resizing", "FileSystemResizePending" + + If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected: + - "ControllerResizeError", "NodeResizeError" + + If VolumeAttributesClass feature gate is enabled, then following additional values can be expected: + - "ModifyVolumeError", "ModifyingVolume" type: string required: - status @@ -7256,13 +7384,13 @@ spec: description: |- currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). type: string modifyVolumeStatus: description: |- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). properties: status: description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately." @@ -7284,7 +7412,6 @@ spec: TargetLimit defines a limit on the number of scraped targets that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit. format: int64 @@ -7396,7 +7523,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -7436,7 +7562,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -7454,7 +7579,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -7466,7 +7590,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -7514,7 +7637,6 @@ spec: description: |- TracingConfig configures tracing in Prometheus. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. properties: @@ -7571,9 +7693,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7595,9 +7715,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7626,9 +7744,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7650,9 +7766,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7684,9 +7798,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7695,6 +7807,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -7702,12 +7836,31 @@ spec: required: - endpoint type: object + tsdb: + description: |- + Defines the runtime reloadable configuration of the timeseries database(TSDB). + It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. + properties: + outOfOrderTimeWindow: + description: |- + Configures how old an out-of-order/out-of-bounds sample can be with + respect to the TSDB max time. + + An out-of-order/out-of-bounds sample is ingested into the TSDB as long as + the timestamp of the sample is >= (TSDB.MaxTime - outOfOrderTimeWindow). + + This is an *experimental feature*, it may change in any upcoming release + in a breaking way. + + It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ + type: string + type: object version: description: |- Version of Prometheus being deployed. The operator uses this information to generate the Prometheus StatefulSet + configuration files. - If not specified, the operator assumes the latest upstream version of Prometheus available at the time when the version of the operator was released. @@ -7716,7 +7869,6 @@ spec: description: |- VolumeMounts allows the configuration of additional VolumeMounts. - VolumeMounts will be appended to other VolumeMounts in the 'prometheus' container, that are generated as a result of StorageSpec objects. items: @@ -7749,10 +7901,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -7760,11 +7910,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -7804,7 +7952,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7840,6 +7987,7 @@ spec: description: diskURI is the URI of data disk in the blob storage type: string fsType: + default: ext4 description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -7849,6 +7997,7 @@ spec: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string readOnly: + default: false description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. @@ -7912,9 +8061,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -7956,9 +8103,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -8029,9 +8174,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -8067,9 +8210,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -8194,7 +8335,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -8205,17 +8345,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -8229,7 +8366,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -8239,11 +8375,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -8438,7 +8572,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8461,7 +8595,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -8526,9 +8659,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -8559,7 +8690,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -8639,9 +8769,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -8658,6 +8785,41 @@ spec: required: - path type: object + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -8676,7 +8838,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -8688,6 +8849,7 @@ spec: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: + default: default description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). @@ -8719,9 +8881,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -8834,23 +8994,24 @@ spec: format: int32 type: integer sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. properties: clusterTrustBundle: description: |- ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -8978,9 +9139,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -9097,9 +9256,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional field specify whether the Secret or its key must be defined @@ -9185,7 +9342,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -9193,6 +9349,7 @@ spec: More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: + default: /etc/ceph/keyring description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. @@ -9207,6 +9364,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd description: |- pool is the rados pool name. Default is rbd. @@ -9232,13 +9390,12 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic user: + default: admin description: |- user is the rados user name. Default is admin. @@ -9252,6 +9409,7 @@ spec: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: + default: xfs description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -9281,9 +9439,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -9291,6 +9447,7 @@ spec: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: + default: ThinProvisioned description: |- storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. @@ -9400,9 +9557,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -9450,10 +9605,8 @@ spec: description: |- Configures compression of the write-ahead log (WAL) using Snappy. - WAL compression is enabled by default for Prometheus >= 2.20.0 - Requires Prometheus v2.11.0 and above. type: boolean web: @@ -9541,9 +9694,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -9565,9 +9716,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9577,6 +9726,11 @@ spec: type: object x-kubernetes-map-type: atomic type: object + certFile: + description: |- + Path to the TLS certificate file in the Prometheus container for the server. + Mutually exclusive with `cert`. + type: string cipherSuites: description: |- List of supported cipher suites for TLS versions up to TLS 1.2. If empty, @@ -9601,9 +9755,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -9625,9 +9777,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9643,6 +9793,11 @@ spec: For more detail on clientAuth options: https://golang.org/pkg/crypto/tls/#ClientAuthType type: string + clientCAFile: + description: |- + Path to the CA certificate file for client certificate authentication to the server. + Mutually exclusive with `client_ca`. + type: string curvePreferences: description: |- Elliptic curves that will be used in an ECDHE handshake, in preference @@ -9651,6 +9806,11 @@ spec: items: type: string type: array + keyFile: + description: |- + Path to the TLS key file in the Prometheus container for the server. + Mutually exclusive with `keySecret`. + type: string keySecret: description: Secret containing the TLS key for the server. properties: @@ -9664,9 +9824,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9688,9 +9846,6 @@ spec: cipher suite. If true then the server's preference, as expressed in the order of elements in cipherSuites, is used. type: boolean - required: - - cert - - keySecret type: object type: object type: object diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml index 89a5237f..d2db1d5b 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: prometheuses.monitoring.coreos.com spec: @@ -51,7 +51,14 @@ spec: name: v1 schema: openAPIV3Schema: - description: Prometheus defines a Prometheus deployment. + description: |- + The `Prometheus` custom resource definition (CRD) defines a desired [Prometheus](https://prometheus.io/docs/prometheus) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage, and Alertmanagers where firing alerts should be sent and many more. + + For each `Prometheus` resource, the Operator deploys one or several `StatefulSet` objects in the same namespace. The number of StatefulSets is equal to the number of shards which is 1 by default. + + The resource defines via label and namespace selectors which `ServiceMonitor`, `PodMonitor`, `Probe` and `PrometheusRule` objects should be associated to the deployed Prometheus instances. + + The Operator continuously reconciles the scrape and rules configuration and a sidecar container running in the Prometheus pods triggers a reload of the configuration when needed. properties: apiVersion: description: |- @@ -83,13 +90,10 @@ spec: Prometheus Operator. They must be formatted according to the official Prometheus documentation: - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config - The user is responsible for making sure that the configurations are valid - Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible AlertManager configs are going to break @@ -105,9 +109,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -124,13 +126,10 @@ spec: Prometheus Operator. They must be formatted according to the official Prometheus documentation: - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs - The user is responsible for making sure that the configurations are valid - Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel configs are going to break @@ -146,9 +145,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -161,13 +158,11 @@ spec: description: |- AdditionalArgs allows setting additional arguments for the 'prometheus' container. - It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet. The arguments are passed as-is to the Prometheus container which may cause issues if they are invalid or not supported by the given Prometheus version. - In case of an argument conflict (e.g. an argument which is already set by the operator itself) or when providing an invalid argument, the reconciliation will fail and an error will be logged. @@ -209,9 +204,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -486,7 +479,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -501,7 +494,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -662,7 +655,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -677,7 +670,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -831,7 +824,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -846,7 +839,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1007,7 +1000,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1022,7 +1015,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1105,7 +1098,7 @@ spec: description: Defines the settings related to Alertmanager. properties: alertmanagers: - description: AlertmanagerEndpoints Prometheus should fire alerts against. + description: Alertmanager endpoints where Prometheus should send alerts to. items: description: |- AlertmanagerEndpoints defines a selection of a single Endpoints object @@ -1120,7 +1113,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -1128,11 +1120,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -1162,7 +1152,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -1174,7 +1163,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -1196,11 +1184,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -1214,7 +1200,6 @@ spec: description: |- Authorization section for Alertmanager. - Cannot be set at the same time as `basicAuth`, `bearerTokenFile` or `sigv4`. properties: credentials: @@ -1230,9 +1215,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1245,10 +1228,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1256,7 +1237,6 @@ spec: description: |- BasicAuth configuration for Alertmanager. - Cannot be set at the same time as `bearerTokenFile`, `authorization` or `sigv4`. properties: password: @@ -1274,9 +1254,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1300,9 +1278,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1316,10 +1292,8 @@ spec: description: |- File to read bearer token for Alertmanager. - Cannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string enableHttp2: @@ -1327,9 +1301,15 @@ spec: type: boolean name: description: Name of the Endpoints object in the namespace. + minLength: 1 type: string namespace: - description: Namespace of the Endpoints object. + description: |- + Namespace of the Endpoints object. + + If not set, the object will be discovered in the namespace of the + Prometheus object. + minLength: 1 type: string pathPrefix: description: Prefix for the HTTP path alerts are pushed to. @@ -1347,7 +1327,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -1355,11 +1334,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -1389,7 +1366,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -1401,7 +1377,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -1423,11 +1398,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -1439,10 +1412,8 @@ spec: description: |- Sigv4 allows to configures AWS's Signature Verification 4 for the URL. - It requires Prometheus >= v2.48.0. - Cannot be set at the same time as `basicAuth`, `bearerTokenFile` or `authorization`. properties: accessKey: @@ -1460,9 +1431,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1495,9 +1464,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1530,9 +1497,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1554,9 +1519,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1585,9 +1548,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1609,9 +1570,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1643,9 +1602,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1654,13 +1611,34 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string type: object required: - name - - namespace - port type: object type: array @@ -1672,7 +1650,6 @@ spec: AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. - Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default. type: boolean apiserverConfig: @@ -1687,7 +1664,6 @@ spec: description: |- Authorization section for the API server. - Cannot be set at the same time as `basicAuth`, `bearerToken`, or `bearerTokenFile`. properties: @@ -1704,9 +1680,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1722,10 +1696,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1733,7 +1705,6 @@ spec: description: |- BasicAuth configuration for the API server. - Cannot be set at the same time as `authorization`, `bearerToken`, or `bearerTokenFile`. properties: @@ -1752,9 +1723,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1778,9 +1747,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1795,17 +1762,14 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File to read bearer token for accessing apiserver. - Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string host: @@ -1832,9 +1796,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1856,9 +1818,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1887,9 +1847,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1911,9 +1869,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1945,9 +1901,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1956,6 +1910,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1984,7 +1960,6 @@ spec: AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod. If the field isn't set, the operator mounts the service account token by default. - **Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery. It is possible to use strategic merge patch to project the service account token into the 'prometheus' container. type: boolean @@ -1996,7 +1971,6 @@ spec: BodySizeLimit defines per-scrape on response body size. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit. pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ @@ -2019,13 +1993,11 @@ spec: container if they share the same name and modifications are done via a strategic merge patch. - The names of containers managed by the operator are: * `prometheus` * `config-reloader` * `thanos-sidecar` - Overriding containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. @@ -2098,9 +2070,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2159,9 +2129,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2199,9 +2167,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -2221,9 +2187,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -2497,11 +2461,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2703,11 +2667,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2850,11 +2814,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -2865,6 +2827,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -2986,7 +2954,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -3064,7 +3032,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -3143,11 +3110,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3352,10 +3319,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -3363,11 +3328,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -3408,13 +3371,11 @@ spec: description: |- Enables access to the Prometheus web admin API. - WARNING: Enabling the admin APIs enables mutating endpoints, to delete data, shutdown Prometheus, and more. Enabling this should be done with care and the user is advised to add additional authentication authorization via a proxy to ensure only clients authorized to perform these actions can do so. - For more information: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis type: boolean @@ -3422,12 +3383,10 @@ spec: description: |- Enable access to Prometheus feature flags. By default, no features are enabled. - Enabling features which are disabled by default is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. - For more information see https://prometheus.io/docs/prometheus/latest/feature_flags/ items: minLength: 1 @@ -3439,14 +3398,12 @@ spec: Enable Prometheus to be used as a receiver for the Prometheus remote write protocol. - WARNING: This is not considered an efficient way of ingesting samples. Use it with caution for specific low-volume use cases. It is not suitable for replacing the ingestion via scraping and turning Prometheus into a push-based metrics collection system. For more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver - It requires Prometheus >= v2.33.0. type: boolean enforcedBodySizeLimit: @@ -3456,10 +3413,8 @@ spec: Targets responding with a body larger than this many bytes will cause the scrape to fail. - It requires Prometheus >= v2.28.0. - When both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus >= 2.45.0) or the enforcedBodySizeLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`. @@ -3475,10 +3430,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is greater than zero and less than `spec.enforcedKeepDroppedTargets`. - It requires Prometheus >= v2.47.0. - When both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply: * Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus >= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`. @@ -3493,10 +3446,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is greater than zero and less than `spec.enforcedLabelLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus >= 2.45.0) or the enforcedLabelLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`. @@ -3511,10 +3462,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is greater than zero and less than `spec.enforcedLabelNameLengthLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus >= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`. @@ -3529,10 +3478,8 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is greater than zero and less than `spec.enforcedLabelValueLengthLimit`. - It requires Prometheus >= v2.27.0. - When both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus >= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`. @@ -3544,16 +3491,13 @@ spec: description: |- When not empty, a label will be added to: - 1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects. 2. All metrics generated from recording rules defined in `PrometheusRule` objects. 3. All alerts generated from alerting rules defined in `PrometheusRule` objects. 4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects. - The label will not added for objects referenced in `spec.excludedFromEnforcement`. - The label's name is this field's value. The label's value is the namespace of the `ServiceMonitor`, `PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object. @@ -3566,11 +3510,9 @@ spec: unless `spec.sampleLimit` is greater than zero and less than `spec.enforcedSampleLimit`. - It is meant to be used by admins to keep the overall number of samples/series under a desired limit. - When both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus >= 2.45.0) or the enforcedSampleLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`. @@ -3585,11 +3527,9 @@ spec: ServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is greater than zero and less than `spec.enforcedTargetLimit`. - It is meant to be used by admins to to keep the overall number of targets under a desired limit. - When both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply: * Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus >= 2.45.0) or the enforcedTargetLimit value (Prometheus < v2.45.0). If Prometheus version is >= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`. @@ -3609,7 +3549,6 @@ spec: List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects to be excluded from enforcing a namespace label of origin. - It is only applicable if `spec.enforcedNamespaceLabel` set to true. items: description: ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object. @@ -3652,11 +3591,9 @@ spec: description: |- Maximum number of exemplars stored in memory for all series. - exemplar-storage itself must be enabled using the `spec.enableFeature` option for exemplars to be scraped in the first place. - If not set, Prometheus uses its default value. A value of zero or less than zero disables the storage. format: int64 @@ -3706,11 +3643,9 @@ spec: description: |- Use the host's network namespace if true. - Make sure to understand the security implications if you want to enable it (https://kubernetes.io/docs/concepts/configuration/overview/). - When hostNetwork is enabled, this will set the DNS policy to `ClusterFirstWithHostNet` automatically. type: boolean @@ -3726,11 +3661,9 @@ spec: Container image name for Prometheus. If specified, it takes precedence over the `spec.baseImage`, `spec.tag` and `spec.sha` fields. - Specifying `spec.version` is still necessary to ensure the Prometheus Operator knows which version of Prometheus is being configured. - If neither `spec.image` nor `spec.baseImage` are defined, the operator will use the latest upstream version of Prometheus available at the time when the operator was released. @@ -3762,9 +3695,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -3780,11 +3711,9 @@ spec: containers if they share the same name and modifications are done via a strategic merge patch. - The names of init container name managed by the operator are: * `init-config-reloader`. - Overriding init containers is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. @@ -3857,9 +3786,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3918,9 +3845,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3958,9 +3883,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -3980,9 +3903,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -4256,11 +4177,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4462,11 +4383,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4609,11 +4530,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -4624,6 +4543,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -4745,7 +4670,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -4823,7 +4748,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4902,11 +4826,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5111,10 +5035,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -5122,11 +5044,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -5165,10 +5085,8 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets. format: int64 @@ -5178,7 +5096,6 @@ spec: Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit. format: int64 @@ -5188,7 +5105,6 @@ spec: Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit. format: int64 @@ -5198,7 +5114,6 @@ spec: Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit. format: int64 @@ -5237,7 +5152,6 @@ spec: without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) - This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate. format: int32 @@ -5247,6 +5161,20 @@ spec: type: string description: Defines on which Nodes the Pods are scheduled. type: object + otlp: + description: |- + Settings related to the OTLP receiver feature. + It requires Prometheus >= v2.54.0. + properties: + promoteResourceAttributes: + description: List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none. + items: + minLength: 1 + type: string + minItems: 1 + type: array + x-kubernetes-list-type: set + type: object overrideHonorLabels: description: |- When true, Prometheus resolves label conflicts by renaming the labels in the scraped data @@ -5293,7 +5221,6 @@ spec: description: |- PodMetadata configures labels and annotations which are propagated to the Prometheus pods. - The following items are reserved and cannot be overridden: * "prometheus" label, set to the name of the Prometheus object. * "app.kubernetes.io/instance" label, set to the name of the Prometheus object. @@ -5384,7 +5311,6 @@ spec: PodMonitors to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -5503,7 +5429,6 @@ spec: Probes to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -5560,7 +5485,6 @@ spec: name. The external label will _not_ be added when the field is set to the empty string (`""`). - Default: "prometheus" type: string prometheusRulesExcludedFromEnforce: @@ -5613,7 +5537,6 @@ spec: description: |- queryLogFile specifies where the file to which PromQL queries are logged. - If the filename has an empty path, e.g. 'query.log', The Prometheus Pods will mount the file into an emptyDir volume at `/var/log/prometheus`. If a full path is provided, e.g. '/var/log/prometheus/query.log', you @@ -5643,10 +5566,8 @@ spec: description: |- Authorization section for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `basicAuth`, or `oauth2`. properties: credentials: @@ -5662,9 +5583,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5680,10 +5599,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -5691,7 +5608,6 @@ spec: description: |- BasicAuth configuration for the URL. - Cannot be set at the same time as `authorization`, or `oauth2`. properties: password: @@ -5709,9 +5625,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5735,9 +5649,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5752,28 +5664,24 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File from which to read the bearer token for the URL. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string filterExternalLabels: description: |- Whether to use the external labels as selectors for the remote read endpoint. - It requires Prometheus >= v2.34.0. type: boolean followRedirects: description: |- Configure whether HTTP requests follow HTTP 3xx redirects. - It requires Prometheus >= v2.26.0. type: boolean headers: @@ -5790,7 +5698,6 @@ spec: name is used in metrics and logging in order to differentiate read configurations. - It requires Prometheus >= v2.15.0. type: string noProxy: @@ -5799,17 +5706,14 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- OAuth2 configuration for the URL. - It requires Prometheus >= v2.27.0. - Cannot be set at the same time as `authorization`, or `basicAuth`. properties: clientId: @@ -5830,9 +5734,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5854,9 +5756,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5881,9 +5781,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5899,11 +5797,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5928,9 +6028,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5944,24 +6042,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string readRecent: @@ -5999,9 +6090,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6023,9 +6112,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6054,9 +6141,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6078,9 +6163,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6112,9 +6195,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6123,6 +6204,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -6145,10 +6248,8 @@ spec: description: |- Authorization section for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`. properties: credentials: @@ -6164,9 +6265,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6182,10 +6281,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -6193,10 +6290,8 @@ spec: description: |- AzureAD for the URL. - It requires Prometheus >= v2.45.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`. properties: cloud: @@ -6222,7 +6317,6 @@ spec: OAuth defines the oauth config that is being used to authenticate. Cannot be set at the same time as `managedIdentity` or `sdk`. - It requires Prometheus >= v2.48.0. properties: clientId: @@ -6242,9 +6336,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6269,7 +6361,6 @@ spec: See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication Cannot be set at the same time as `oauth` or `managedIdentity`. - It requires Prometheus >= 2.52.0. properties: tenantId: @@ -6282,7 +6373,6 @@ spec: description: |- BasicAuth configuration for the URL. - Cannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`. properties: password: @@ -6300,9 +6390,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6326,9 +6414,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6343,14 +6429,12 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File from which to read bearer token for the URL. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string enableHTTP2: @@ -6360,7 +6444,6 @@ spec: description: |- Configure whether HTTP requests follow HTTP 3xx redirects. - It requires Prometheus >= v2.26.0. type: boolean headers: @@ -6370,7 +6453,6 @@ spec: Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. - It requires Prometheus >= v2.25.0. type: object metadataConfig: @@ -6389,7 +6471,6 @@ spec: The name of the remote write queue, it must be unique if specified. The name is used in metrics and logging in order to differentiate queues. - It requires Prometheus >= v2.15.0. type: string noProxy: @@ -6398,17 +6479,14 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- OAuth2 configuration for the URL. - It requires Prometheus >= v2.27.0. - Cannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`. properties: clientId: @@ -6429,9 +6507,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6453,9 +6529,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6480,9 +6554,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6498,11 +6570,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -6527,9 +6801,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6543,24 +6815,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string queueConfig: @@ -6599,7 +6864,6 @@ spec: description: |- Retry upon receiving a 429 status code from the remote-write storage. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: boolean @@ -6620,7 +6884,6 @@ spec: exemplar-storage itself must be enabled using the `spec.enableFeature` option for exemplars to be scraped in the first place. - It requires Prometheus >= v2.27.0. type: boolean sendNativeHistograms: @@ -6628,17 +6891,14 @@ spec: Enables sending of native histograms, also known as sparse histograms over remote write. - It requires Prometheus >= v2.40.0. type: boolean sigv4: description: |- Sigv4 allows to configures AWS's Signature Verification 4 for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`. properties: accessKey: @@ -6656,9 +6916,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6691,9 +6949,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6722,9 +6978,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6746,9 +7000,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6777,9 +7029,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6801,9 +7051,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6835,9 +7083,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6846,6 +7092,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -6860,7 +7128,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -6868,11 +7135,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -6902,7 +7167,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -6914,7 +7178,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -6936,11 +7199,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -6955,7 +7216,6 @@ spec: The external label will _not_ be added when the field is set to the empty string (`""`). - Default: "prometheus_replica" type: string replicas: @@ -6964,7 +7224,6 @@ spec: `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. - Default: 1 format: int32 type: integer @@ -6976,11 +7235,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -6991,6 +7248,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -7027,7 +7290,6 @@ spec: description: |- How long to retain the Prometheus data. - Default: "24h" if `spec.retention` and `spec.retentionSize` are empty. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string @@ -7039,7 +7301,6 @@ spec: description: |- The route prefix Prometheus registers HTTP handlers for. - This is useful when using `spec.externalURL`, and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true, but the server serves requests under a different route prefix. For example @@ -7146,14 +7407,12 @@ spec: description: |- Defines the parameters of the Prometheus rules' engine. - Any update to these parameters trigger a restart of the pods. properties: forGracePeriod: description: |- Minimum duration between alert and restored 'for' state. - This is maintained only for alerts with a configured 'for' time greater than the grace period. type: string @@ -7174,7 +7433,6 @@ spec: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 @@ -7184,36 +7442,46 @@ spec: List of scrape classes to expose to scraping objects such as PodMonitors, ServiceMonitors, Probes and ScrapeConfigs. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. items: properties: + attachMetadata: + description: |- + AttachMetadata configures additional metadata to the discovered targets. + When the scrape object defines its own configuration, it takes + precedence over the scrape class configuration. + properties: + node: + description: |- + When set to true, Prometheus attaches node metadata to the discovered + targets. + + The Prometheus service account must have the `list` and `watch` + permissions on the `Nodes` objects. + type: boolean + type: object default: description: |- Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name. - Only one scrape class can be set as the default. type: boolean metricRelabelings: description: |- MetricRelabelings configures the relabeling rules to apply to all samples before ingestion. - The Operator adds the scrape class metric relabelings defined here. Then the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs. Then the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -7221,11 +7489,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -7255,7 +7521,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -7267,7 +7532,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -7289,11 +7553,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -7306,20 +7568,17 @@ spec: description: |- Relabelings configures the relabeling rules to apply to all scrape targets. - The Operator automatically adds relabelings for a few standard Kubernetes fields like `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`. Then the Operator adds the scrape class relabelings defined here. Then the Operator adds the target-specific relabelings defined in the scrape object. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -7327,11 +7586,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -7361,7 +7618,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -7373,7 +7629,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -7395,11 +7650,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -7410,7 +7663,6 @@ spec: scrape objects define their own CA, certificate and/or key, they take precedence over the corresponding scrape class fields. - For now only the `caFile`, `certFile` and `keyFile` fields are supported. properties: ca: @@ -7429,9 +7681,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7453,9 +7703,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7484,9 +7732,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7508,9 +7754,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7542,9 +7786,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7553,6 +7795,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -7570,7 +7834,6 @@ spec: matches all namespaces. A null label selector matches the current namespace only. - Note that the ScrapeConfig custom resource definition is currently at Alpha level. properties: matchExpressions: @@ -7619,7 +7882,6 @@ spec: ScrapeConfigs to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -7629,7 +7891,6 @@ spec: of the custom resource definition. It is recommended to use `spec.additionalScrapeConfigs` instead. - Note that the ScrapeConfig custom resource definition is currently at Alpha level. properties: matchExpressions: @@ -7678,7 +7939,6 @@ spec: description: |- Interval between consecutive scrapes. - Default: "30s" pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string @@ -7687,10 +7947,8 @@ spec: The protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -7721,6 +7979,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: set securityContext: description: |- SecurityContext holds pod-level security attributes and common container settings. @@ -7755,12 +8014,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -7843,7 +8100,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -7853,18 +8109,28 @@ spec: type: object supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -7922,6 +8188,17 @@ spec: ServiceAccountName is the name of the ServiceAccount to use to run the Prometheus Pods. type: string + serviceDiscoveryRole: + description: |- + Defines the service discovery role used to discover targets from + `ServiceMonitor` objects and Alertmanager endpoints. + + If set, the value should be either "Endpoints" or "EndpointSlice". + If unset, the operator assumes the "Endpoints" role. + enum: + - Endpoints + - EndpointSlice + type: string serviceMonitorNamespaceSelector: description: |- Namespaces to match for ServicedMonitors discovery. An empty label selector @@ -7974,7 +8251,6 @@ spec: ServiceMonitors to be selected for target discovery. An empty label selector matches all objects. A null label selector matches no objects. - If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's @@ -8033,18 +8309,15 @@ spec: Number of shards to distribute targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. - Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved. Increasing shards will not reshard data either but it will continue to be available from the same instances. To query globally, use Thanos sidecar and Thanos querier or remote write data to a central location. - Sharding is performed on the content of the `__address__` target meta-label for PodMonitors and ServiceMonitors and `__param_target__` for Probes. - Default: 1 format: int32 type: integer @@ -8098,7 +8371,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -8108,11 +8380,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -8307,7 +8577,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8558,7 +8828,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8587,7 +8857,7 @@ spec: that it does not recognizes, then it should ignore that update and let other controllers handle it. type: string - description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -8597,7 +8867,7 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object capacity: additionalProperties: @@ -8635,7 +8905,16 @@ spec: status: type: string type: - description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type + description: |- + PersistentVolumeClaimConditionType defines the condition of PV claim. + Valid values are: + - "Resizing", "FileSystemResizePending" + + If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected: + - "ControllerResizeError", "NodeResizeError" + + If VolumeAttributesClass feature gate is enabled, then following additional values can be expected: + - "ModifyVolumeError", "ModifyingVolume" type: string required: - status @@ -8649,13 +8928,13 @@ spec: description: |- currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). type: string modifyVolumeStatus: description: |- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). properties: status: description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately." @@ -8680,7 +8959,6 @@ spec: TargetLimit defines a limit on the number of scraped targets that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. - Note that the global limit only applies to scrape objects that don't specify an explicit limit value. If you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit. format: int64 @@ -8719,7 +8997,6 @@ spec: BlockDuration controls the size of TSDB blocks produced by Prometheus. The default value is 2h to match the upstream Prometheus defaults. - WARNING: Changing the block duration can impact the performance and efficiency of the entire Prometheus/Thanos stack due to how it interacts with memory and Thanos compactors. It is recommended to keep this value @@ -8740,14 +9017,12 @@ spec: When true, the Thanos sidecar listens on the loopback interface instead of the Pod IP's address for the gRPC endpoints. - It has no effect if `listenLocal` is true. type: boolean grpcServerTlsConfig: description: |- Configures the TLS parameters for the gRPC server providing the StoreAPI. - Note: Currently only the `caFile`, `certFile`, and `keyFile` fields are supported. properties: ca: @@ -8766,9 +9041,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -8790,9 +9063,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -8821,9 +9092,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -8845,9 +9114,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -8879,9 +9146,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -8890,6 +9155,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -8899,7 +9186,6 @@ spec: When true, the Thanos sidecar listens on the loopback interface instead of the Pod IP's address for the HTTP endpoints. - It has no effect if `listenLocal` is true. type: boolean image: @@ -8908,11 +9194,9 @@ spec: the `spec.thanos.baseImage`, `spec.thanos.tag` and `spec.thanos.sha` fields. - Specifying `spec.thanos.version` is still necessary to ensure the Prometheus Operator knows which version of Thanos is being configured. - If neither `spec.thanos.image` nor `spec.thanos.baseImage` are defined, the operator will use the latest upstream version of Thanos available at the time when the operator was released. @@ -8947,10 +9231,8 @@ spec: description: |- Defines the Thanos sidecar's configuration to upload TSDB blocks to object storage. - More info: https://thanos.io/tip/thanos/storage.md/ - objectStorageConfigFile takes precedence over this field. properties: key: @@ -8963,9 +9245,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -8978,10 +9258,8 @@ spec: description: |- Defines the Thanos sidecar's configuration file to upload TSDB blocks to object storage. - More info: https://thanos.io/tip/thanos/storage.md/ - This field takes precedence over objectStorageConfig. type: string readyTimeout: @@ -8998,11 +9276,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -9013,6 +9289,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -9055,13 +9337,10 @@ spec: description: |- Defines the tracing configuration for the Thanos sidecar. - `tracingConfigFile` takes precedence over this field. - More info: https://thanos.io/tip/thanos/tracing.md/ - This is an *experimental feature*, it may change in any upcoming release in a breaking way. properties: @@ -9075,9 +9354,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9090,13 +9367,10 @@ spec: description: |- Defines the tracing configuration file for the Thanos sidecar. - This field takes precedence over `tracingConfig`. - More info: https://thanos.io/tip/thanos/tracing.md/ - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: string @@ -9105,7 +9379,6 @@ spec: Version of Thanos being deployed. The operator uses this information to generate the Prometheus StatefulSet + configuration files. - If not specified, the operator assumes the latest upstream release of Thanos available at the time when the version of the operator was released. @@ -9145,10 +9418,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -9156,11 +9427,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -9288,7 +9557,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -9328,7 +9596,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -9346,7 +9613,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -9358,7 +9624,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -9406,7 +9671,6 @@ spec: description: |- TracingConfig configures tracing in Prometheus. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. properties: @@ -9463,9 +9727,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -9487,9 +9749,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9518,9 +9778,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -9542,9 +9800,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9576,9 +9832,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -9587,6 +9841,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -9596,24 +9872,21 @@ spec: type: object tsdb: description: |- - Defines the runtime reloadable configuration of the timeseries database - (TSDB). + Defines the runtime reloadable configuration of the timeseries database(TSDB). + It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. properties: outOfOrderTimeWindow: description: |- Configures how old an out-of-order/out-of-bounds sample can be with respect to the TSDB max time. - An out-of-order/out-of-bounds sample is ingested into the TSDB as long as the timestamp of the sample is >= (TSDB.MaxTime - outOfOrderTimeWindow). - This is an *experimental feature*, it may change in any upcoming release in a breaking way. - - It requires Prometheus >= v2.39.0. + It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string type: object @@ -9622,7 +9895,6 @@ spec: Version of Prometheus being deployed. The operator uses this information to generate the Prometheus StatefulSet + configuration files. - If not specified, the operator assumes the latest upstream version of Prometheus available at the time when the version of the operator was released. @@ -9631,7 +9903,6 @@ spec: description: |- VolumeMounts allows the configuration of additional VolumeMounts. - VolumeMounts will be appended to other VolumeMounts in the 'prometheus' container, that are generated as a result of StorageSpec objects. items: @@ -9664,10 +9935,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -9675,11 +9944,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -9719,7 +9986,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -9755,6 +10021,7 @@ spec: description: diskURI is the URI of data disk in the blob storage type: string fsType: + default: ext4 description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -9764,6 +10031,7 @@ spec: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string readOnly: + default: false description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. @@ -9827,9 +10095,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -9871,9 +10137,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -9944,9 +10208,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -9982,9 +10244,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -10109,7 +10369,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -10120,17 +10379,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -10144,7 +10400,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -10154,11 +10409,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -10353,7 +10606,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -10376,7 +10629,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -10441,9 +10693,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -10474,7 +10724,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -10554,9 +10803,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -10573,6 +10819,41 @@ spec: required: - path type: object + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -10591,7 +10872,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -10603,6 +10883,7 @@ spec: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: + default: default description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). @@ -10634,9 +10915,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -10749,23 +11028,24 @@ spec: format: int32 type: integer sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. properties: clusterTrustBundle: description: |- ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -10893,9 +11173,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -11012,9 +11290,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional field specify whether the Secret or its key must be defined @@ -11100,7 +11376,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -11108,6 +11383,7 @@ spec: More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: + default: /etc/ceph/keyring description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. @@ -11122,6 +11398,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd description: |- pool is the rados pool name. Default is rbd. @@ -11147,13 +11424,12 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic user: + default: admin description: |- user is the rados user name. Default is admin. @@ -11167,6 +11443,7 @@ spec: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: + default: xfs description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -11196,9 +11473,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -11206,6 +11481,7 @@ spec: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: + default: ThinProvisioned description: |- storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. @@ -11315,9 +11591,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -11365,10 +11639,8 @@ spec: description: |- Configures compression of the write-ahead log (WAL) using Snappy. - WAL compression is enabled by default for Prometheus >= 2.20.0 - Requires Prometheus v2.11.0 and above. type: boolean web: @@ -11456,9 +11728,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -11480,9 +11750,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -11492,6 +11760,11 @@ spec: type: object x-kubernetes-map-type: atomic type: object + certFile: + description: |- + Path to the TLS certificate file in the Prometheus container for the server. + Mutually exclusive with `cert`. + type: string cipherSuites: description: |- List of supported cipher suites for TLS versions up to TLS 1.2. If empty, @@ -11516,9 +11789,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -11540,9 +11811,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -11558,6 +11827,11 @@ spec: For more detail on clientAuth options: https://golang.org/pkg/crypto/tls/#ClientAuthType type: string + clientCAFile: + description: |- + Path to the CA certificate file for client certificate authentication to the server. + Mutually exclusive with `client_ca`. + type: string curvePreferences: description: |- Elliptic curves that will be used in an ECDHE handshake, in preference @@ -11566,6 +11840,11 @@ spec: items: type: string type: array + keyFile: + description: |- + Path to the TLS key file in the Prometheus container for the server. + Mutually exclusive with `keySecret`. + type: string keySecret: description: Secret containing the TLS key for the server. properties: @@ -11579,9 +11858,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -11603,9 +11880,6 @@ spec: cipher suite. If true then the server's preference, as expressed in the order of elements in cipherSuites, is used. type: boolean - required: - - cert - - keySecret type: object type: object type: object diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml index 86609d98..fc33c76b 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: prometheusrules.monitoring.coreos.com spec: @@ -24,7 +24,10 @@ spec: - name: v1 schema: openAPIV3Schema: - description: PrometheusRule defines recording and alerting rules for a Prometheus instance + description: |- + The `PrometheusRule` custom resource definition (CRD) defines [alerting](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) and [recording](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/) rules to be evaluated by `Prometheus` or `ThanosRuler` objects. + + `Prometheus` and `ThanosRuler` objects select `PrometheusRule` objects using label and namespace selectors. properties: apiVersion: description: |- diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml index 812fbd24..2524867a 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: scrapeconfigs.monitoring.coreos.com spec: @@ -48,442 +48,6 @@ spec: spec: description: ScrapeConfigSpec is a specification of the desired configuration for a scrape configuration. properties: - NomadSDConfigs: - description: NomadSDConfigs defines a list of Nomad service discovery configurations. - items: - description: |- - NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API. - See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#nomad_sd_config - properties: - allowStale: - description: |- - The information to access the Nomad API. It is to be defined - as the Nomad documentation requires. - type: boolean - authorization: - description: Authorization header to use on every scrape request. - properties: - credentials: - description: Selects a key of a Secret in the namespace that contains the credentials for authentication. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: - description: |- - Defines the authentication type. The value is case-insensitive. - - - "Basic" is not a supported value. - - - Default: "Bearer" - type: string - type: object - basicAuth: - description: BasicAuth information to use on every scrape request. - properties: - password: - description: |- - `password` specifies a key of a Secret containing the password for - authentication. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - username: - description: |- - `username` specifies a key of a Secret containing the username for - authentication. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - enableHTTP2: - description: Whether to enable HTTP2. - type: boolean - followRedirects: - description: Configure whether HTTP requests follow HTTP 3xx redirects. - type: boolean - namespace: - type: string - noProxy: - description: |- - `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names - that should be excluded from proxying. IP and domain names can - contain port numbers. - - - It requires Prometheus >= v2.43.0. - type: string - oauth2: - description: |- - Optional OAuth 2.0 configuration. - Cannot be set at the same time as `authorization` or `basic_auth`. - properties: - clientId: - description: |- - `clientId` specifies a key of a Secret or ConfigMap containing the - OAuth2 client's ID. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientSecret: - description: |- - `clientSecret` specifies a key of a Secret containing the OAuth2 - client's secret. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - endpointParams: - additionalProperties: - type: string - description: |- - `endpointParams` configures the HTTP parameters to append to the token - URL. - type: object - scopes: - description: '`scopes` defines the OAuth2 scopes used for the token request.' - items: - type: string - type: array - tokenUrl: - description: '`tokenURL` configures the URL to fetch the token from.' - minLength: 1 - type: string - required: - - clientId - - clientSecret - - tokenUrl - type: object - proxyConnectHeader: - additionalProperties: - items: - description: SecretKeySelector selects a key of a Secret. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: array - description: |- - ProxyConnectHeader optionally specifies headers to send to - proxies during CONNECT requests. - - - It requires Prometheus >= v2.43.0. - type: object - x-kubernetes-map-type: atomic - proxyFromEnvironment: - description: |- - Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - - It requires Prometheus >= v2.43.0. - type: boolean - proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. - pattern: ^http(s)?://.+$ - type: string - refreshInterval: - description: |- - Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function. - Supported units: y, w, d, h, m, s, ms - Examples: `30s`, `1m`, `1h20m15s`, `15d` - pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ - type: string - region: - type: string - server: - minLength: 1 - type: string - tagSeparator: - type: string - tlsConfig: - description: TLS configuration applying to the target HTTP endpoint. - properties: - ca: - description: Certificate authority used when verifying server certificates. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - cert: - description: Client certificate to present when doing client-authentication. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the ConfigMap or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object - required: - - server - type: object - type: array authorization: description: Authorization header to use on every scrape request. properties: @@ -500,9 +64,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -515,10 +77,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -556,9 +116,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -611,9 +169,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -637,9 +193,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -677,9 +231,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -692,10 +244,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -719,9 +269,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -745,9 +293,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -779,8 +325,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string nodeMeta: additionalProperties: @@ -809,9 +354,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -833,9 +376,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -860,9 +401,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -878,11 +417,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -910,9 +651,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -926,24 +665,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -999,9 +731,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1023,9 +753,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1051,9 +779,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1075,9 +801,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1103,9 +827,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1114,6 +836,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1131,9 +875,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1172,9 +914,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1187,10 +927,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1206,8 +944,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -1232,9 +969,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1256,9 +991,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1283,9 +1016,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1301,11 +1032,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -1333,9 +1266,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1349,24 +1280,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -1392,9 +1316,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1416,9 +1338,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1444,9 +1364,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1468,9 +1386,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1496,9 +1412,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1507,6 +1421,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -1524,6 +1460,7 @@ spec: names: description: A list of DNS domain names to be queried. items: + minLength: 1 type: string minItems: 1 type: array @@ -1531,6 +1468,9 @@ spec: description: |- The port number used if the query type is not SRV Ignored for SRV records + format: int32 + maximum: 65535 + minimum: 0 type: integer refreshInterval: description: |- @@ -1543,14 +1483,14 @@ spec: The type of DNS query to perform. One of SRV, A, AAAA, MX or NS. If not set, Prometheus uses its default value. - - When set to NS, It requires Prometheus >= 2.49.0. + When set to NS, it requires Prometheus >= v2.49.0. + When set to MX, it requires Prometheus >= v2.38.0 enum: - - SRV - A - AAAA - MX - NS + - SRV type: string required: - names @@ -1583,9 +1523,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1598,10 +1536,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -1623,9 +1559,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1649,9 +1583,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1667,19 +1599,27 @@ spec: filters: description: Optional filters to limit the discovery process to a subset of the available resources. items: - description: DockerFilter is the configuration to limit the discovery process to a subset of available resources. + description: Filter name and value pairs to limit the discovery process to a subset of available resources. properties: name: + description: Name of the Filter. type: string values: + description: Value to filter on. items: + minLength: 1 type: string + minItems: 1 type: array + x-kubernetes-list-type: set required: - name - values type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map followRedirects: description: Configure whether HTTP requests follow HTTP 3xx redirects. type: boolean @@ -1690,14 +1630,19 @@ spec: hostNetworkingHost: description: The host to use if the container is in host networking mode. type: string + matchFirstNetwork: + description: |- + Configure whether to match the first network if the container has multiple networks defined. + If unset, Prometheus uses true by default. + It requires Prometheus >= v2.54.1. + type: boolean noProxy: description: |- `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -1722,9 +1667,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1746,9 +1689,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1773,9 +1714,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1791,11 +1730,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -1823,9 +1964,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1839,24 +1978,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -1882,9 +2014,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1906,9 +2036,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1934,9 +2062,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1958,9 +2084,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1986,9 +2110,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1997,6 +2119,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -2028,9 +2172,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2043,10 +2185,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -2068,9 +2208,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2094,9 +2232,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2118,22 +2254,27 @@ spec: Tasks: https://docs.docker.com/engine/api/v1.40/#operation/TaskList Nodes: https://docs.docker.com/engine/api/v1.40/#operation/NodeList items: - description: Filter is the configuration to limit the discovery process to a subset of available resources. + description: Filter name and value pairs to limit the discovery process to a subset of available resources. properties: name: - description: Name is the key of the field to check against. + description: Name of the Filter. type: string values: - description: Values is the value or set of values to check for a match. + description: Value to filter on. items: + minLength: 1 type: string minItems: 1 type: array + x-kubernetes-list-type: set required: - name - values type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map followRedirects: description: Configure whether HTTP requests follow HTTP 3xx redirects. type: boolean @@ -2147,8 +2288,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -2173,9 +2313,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2197,9 +2335,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2224,9 +2360,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2242,11 +2376,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -2279,9 +2615,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2295,24 +2629,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -2345,9 +2672,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2369,9 +2694,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2397,9 +2720,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2421,9 +2742,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2449,9 +2768,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2460,6 +2777,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -2477,6 +2816,9 @@ spec: The private IP address is used by default, but may be changed to the public IP address with relabeling. The IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config + + The EC2 service discovery requires AWS API keys or role ARN for authentication. + BasicAuth, Authorization and OAuth2 fields are not present on purpose. properties: accessKey: description: AccessKey is the AWS API key. @@ -2491,9 +2833,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2502,40 +2842,114 @@ spec: - key type: object x-kubernetes-map-type: atomic + enableHTTP2: + description: |- + Whether to enable HTTP2. + It requires Prometheus >= v2.41.0 + type: boolean filters: description: |- Filters can be used optionally to filter the instance list by other criteria. Available filter criteria can be found here: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html + It requires Prometheus >= v2.3.0 items: - description: EC2Filter is the configuration for filtering EC2 instances. + description: Filter name and value pairs to limit the discovery process to a subset of available resources. properties: name: + description: Name of the Filter. type: string values: + description: Value to filter on. items: + minLength: 1 type: string + minItems: 1 type: array + x-kubernetes-list-type: set required: - name - values type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + followRedirects: + description: |- + Configure whether HTTP requests follow HTTP 3xx redirects. + It requires Prometheus >= v2.41.0 + type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string port: description: |- The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule. + format: int32 + maximum: 65535 + minimum: 0 type: integer + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string refreshInterval: description: RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string region: - description: The AWS region + description: The AWS region. + minLength: 1 type: string roleARN: description: AWS Role ARN, an alternative to using AWS API keys. + minLength: 1 type: string secretKey: description: SecretKey is the AWS API secret. @@ -2550,9 +2964,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2561,16 +2973,166 @@ spec: - key type: object x-kubernetes-map-type: atomic + tlsConfig: + description: |- + TLS configuration to connect to the AWS EC2 API. + It requires Prometheus >= v2.41.0 + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object type: object type: array enableCompression: description: |- When false, Prometheus will request uncompressed response from the scraped target. - It requires Prometheus >= v2.49.0. - If unset, Prometheus uses true by default. type: boolean eurekaSDConfigs: @@ -2597,9 +3159,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2612,10 +3172,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -2637,9 +3195,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2663,9 +3219,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2687,8 +3241,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -2713,9 +3266,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2737,9 +3288,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2764,9 +3313,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2782,11 +3329,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -2811,9 +3560,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2827,24 +3574,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -2874,9 +3614,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2898,9 +3636,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2926,9 +3662,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2950,9 +3684,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2978,9 +3710,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2989,6 +3719,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -3016,6 +3768,7 @@ spec: type: string minItems: 1 type: array + x-kubernetes-list-type: set refreshInterval: description: RefreshInterval configures the refresh interval at which Prometheus will reload the content of the files. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ @@ -3033,12 +3786,10 @@ spec: the public IP address with relabeling. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config - The GCE service discovery will load the Google Cloud credentials from the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable. See https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform - A pre-requisite for using GCESDConfig is that a Secret containing valid Google Cloud credentials is mounted into the Prometheus or PrometheusAgent pod via the `.spec.secrets` field and that the GOOGLE_APPLICATION_CREDENTIALS @@ -3101,9 +3852,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3116,10 +3865,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3143,9 +3890,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3169,9 +3914,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3193,8 +3936,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -3219,9 +3961,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3243,9 +3983,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3270,9 +4008,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3288,11 +4024,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -3320,9 +4258,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3336,24 +4272,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -3387,9 +4316,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3411,9 +4338,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3439,9 +4364,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3463,9 +4386,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3491,9 +4412,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3502,6 +4421,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -3524,7 +4465,9 @@ spec: See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_sd_config properties: authorization: - description: Authorization header configuration to authenticate against the target HTTP endpoint. + description: |- + Authorization header configuration to authenticate against the target HTTP endpoint. + Cannot be set at the same time as `oAuth2`, or `basicAuth`. properties: credentials: description: Selects a key of a Secret in the namespace that contains the credentials for authentication. @@ -3539,9 +4482,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3554,10 +4495,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3565,6 +4504,7 @@ spec: description: |- BasicAuth information to authenticate against the target HTTP endpoint. More info: https://prometheus.io/docs/operating/configuration/#endpoints + Cannot be set at the same time as `authorization`, or `oAuth2`. properties: password: description: |- @@ -3581,9 +4521,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3607,9 +4545,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3619,15 +4555,322 @@ spec: type: object x-kubernetes-map-type: atomic type: object + enableHTTP2: + description: Whether to enable HTTP2. + type: boolean + followRedirects: + description: Configure whether HTTP requests follow HTTP 3xx redirects. + type: boolean noProxy: description: |- `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string + oauth2: + description: |- + Optional OAuth 2.0 configuration to authenticate against the target HTTP endpoint. + Cannot be set at the same time as `authorization`, or `basicAuth`. + properties: + clientId: + description: |- + `clientId` specifies a key of a Secret or ConfigMap containing the + OAuth2 client's ID. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: |- + `clientSecret` specifies a key of a Secret containing the OAuth2 + client's secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpointParams: + additionalProperties: + type: string + description: |- + `endpointParams` configures the HTTP parameters to append to the token + URL. + type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + scopes: + description: '`scopes` defines the OAuth2 scopes used for the token request.' + items: + type: string + type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + tokenUrl: + description: '`tokenURL` configures the URL to fetch the token from.' + minLength: 1 + type: string + required: + - clientId + - clientSecret + - tokenUrl + type: object proxyConnectHeader: additionalProperties: items: @@ -3643,9 +4886,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3659,24 +4900,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -3704,9 +4938,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3728,9 +4960,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3756,9 +4986,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -3780,9 +5008,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3808,9 +5034,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3819,6 +5043,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -3832,11 +5078,276 @@ spec: - url type: object type: array + ionosSDConfigs: + description: IonosSDConfigs defines a list of IONOS service discovery configurations. + items: + description: |- + IonosSDConfig configurations allow retrieving scrape targets from IONOS resources. + See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ionos_sd_config + properties: + authorization: + description: Authorization` header configuration, required when using IONOS. + properties: + credentials: + description: Selects a key of a Secret in the namespace that contains the credentials for authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: + description: |- + Defines the authentication type. The value is case-insensitive. + + "Basic" is not a supported value. + + Default: "Bearer" + type: string + type: object + datacenterID: + description: The unique ID of the IONOS data center. + minLength: 1 + type: string + enableHTTP2: + description: Configure whether to enable HTTP2. + type: boolean + followRedirects: + description: Configure whether the HTTP requests should follow HTTP 3xx redirects. + type: boolean + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + port: + description: Port to scrape the metrics from. + format: int32 + maximum: 65535 + minimum: 0 + type: integer + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + refreshInterval: + description: Refresh interval to re-read the list of resources. + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ + type: string + tlsConfig: + description: TLS configuration to use when connecting to the IONOS API. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + required: + - authorization + - datacenterID + type: object + type: array jobName: description: |- The value of the `job` label assigned to the scraped metrics by default. - The `job_name` field in the rendered scrape configuration is always controlled by the operator to prevent duplicate job names, which Prometheus does not allow. Instead the `job` label is set by means of relabeling configs. @@ -3847,7 +5358,6 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. format: int64 type: integer @@ -3865,12 +5375,13 @@ spec: If left empty, Prometheus is assumed to run inside of the cluster. It will discover API servers automatically and use the pod's CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. + minLength: 1 type: string attachMetadata: description: |- Optional metadata to attach to discovered targets. - It requires Prometheus >= v2.35.0 for `pod` role and - Prometheus >= v2.37.0 for `endpoints` and `endpointslice` roles. + It requires Prometheus >= v2.35.0 when using the `Pod` role and + Prometheus >= v2.37.0 for `Endpoints` and `Endpointslice` roles. properties: node: description: |- @@ -3898,9 +5409,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3913,10 +5422,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -3940,9 +5447,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3966,9 +5471,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -3994,8 +5497,9 @@ spec: items: type: string type: array + x-kubernetes-list-type: set ownNamespace: - description: Includes the namespace in which the Prometheus pod exists to the list of watched namesapces. + description: Includes the namespace in which the Prometheus pod runs to the list of watched namespaces. type: boolean type: object noProxy: @@ -4004,8 +5508,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -4030,9 +5533,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4054,9 +5555,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4081,9 +5580,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4099,11 +5596,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -4128,9 +5827,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4144,66 +5841,61 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string role: - description: Role of the Kubernetes entities that should be discovered. + description: |- + Role of the Kubernetes entities that should be discovered. + Role `Endpointslice` requires Prometheus >= v2.21.0 enum: - - Node - - node - - Service - - service - Pod - - pod - Endpoints - - endpoints - - EndpointSlice - - endpointslice - Ingress - - ingress + - Service + - Node + - EndpointSlice type: string selectors: - description: Selector to select objects. + description: |- + Selector to select objects. + It requires Prometheus >= v2.17.0 items: description: K8SSelectorConfig is Kubernetes Selector Config properties: field: + description: |- + An optional field selector to limit the service discovery to resources which have fields with specific values. + e.g: `metadata.name=foobar` + minLength: 1 type: string label: + description: |- + An optional label selector to limit the service discovery to resources with specific labels and label values. + e.g: `node.kubernetes.io/instance-type=master` + minLength: 1 type: string role: - description: Role is role of the service in Kubernetes. + description: |- + Role specifies the type of Kubernetes resource to limit the service discovery to. + Accepted values are: Node, Pod, Endpoints, EndpointSlice, Service, Ingress. enum: - - Node - - node - - Service - - service - Pod - - pod - Endpoints - - endpoints - - EndpointSlice - - endpointslice - Ingress - - ingress + - Service + - Node + - EndpointSlice type: string required: - role @@ -4213,7 +5905,7 @@ spec: - role x-kubernetes-list-type: map tlsConfig: - description: TLS configuration to use on every scrape request. + description: TLS configuration to connect to the Kubernetes API. properties: ca: description: Certificate authority used when verifying server certificates. @@ -4231,9 +5923,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4255,9 +5945,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4283,9 +5971,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4307,9 +5993,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4335,9 +6019,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4346,6 +6028,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -4377,9 +6081,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4392,10 +6094,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -4417,9 +6117,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4443,9 +6141,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4474,8 +6170,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -4500,9 +6195,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4524,9 +6217,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4551,9 +6242,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4569,11 +6258,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -4598,9 +6489,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4614,24 +6503,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -4661,9 +6543,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4685,9 +6565,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4713,9 +6591,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4737,9 +6613,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4765,9 +6639,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4776,6 +6648,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -4808,7 +6702,6 @@ spec: description: |- LightSailSDConfig configurations allow retrieving scrape targets from AWS Lightsail instances. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#lightsail_sd_config - TODO: Need to document that we will not be supporting the `_file` fields. properties: accessKey: description: AccessKey is the AWS API key. @@ -4823,9 +6716,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4852,9 +6743,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4867,10 +6756,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -4894,9 +6781,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4920,9 +6805,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4948,8 +6831,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -4974,9 +6856,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4998,9 +6878,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5025,9 +6903,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5043,11 +6919,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5080,9 +7158,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5096,24 +7172,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -5140,9 +7209,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5170,9 +7237,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5194,9 +7259,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5222,9 +7285,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5246,9 +7307,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5274,9 +7333,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5285,6 +7342,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -5314,9 +7393,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5329,10 +7406,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -5348,8 +7423,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -5374,9 +7448,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5398,9 +7470,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5425,9 +7495,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5443,11 +7511,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -5478,9 +7748,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5494,24 +7762,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string refreshInterval: @@ -5545,9 +7806,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5569,9 +7828,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5597,9 +7854,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5621,9 +7876,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5649,9 +7902,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5660,6 +7911,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -5673,7 +7946,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -5681,11 +7953,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -5715,7 +7985,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -5727,7 +7996,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -5749,17 +8017,17 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object + minItems: 1 type: array metricsPath: description: MetricsPath HTTP path to scrape for metrics. If empty, Prometheus uses the default value (e.g. /metrics). + minLength: 1 type: string noProxy: description: |- @@ -5767,9 +8035,934 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string + nomadSDConfigs: + description: NomadSDConfigs defines a list of Nomad service discovery configurations. + items: + description: |- + NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API. + See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#nomad_sd_config + properties: + allowStale: + description: |- + The information to access the Nomad API. It is to be defined + as the Nomad documentation requires. + type: boolean + authorization: + description: Authorization header to use on every scrape request. + properties: + credentials: + description: Selects a key of a Secret in the namespace that contains the credentials for authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: + description: |- + Defines the authentication type. The value is case-insensitive. + + "Basic" is not a supported value. + + Default: "Bearer" + type: string + type: object + basicAuth: + description: BasicAuth information to use on every scrape request. + properties: + password: + description: |- + `password` specifies a key of a Secret containing the password for + authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username: + description: |- + `username` specifies a key of a Secret containing the username for + authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + enableHTTP2: + description: Whether to enable HTTP2. + type: boolean + followRedirects: + description: Configure whether HTTP requests follow HTTP 3xx redirects. + type: boolean + namespace: + type: string + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + oauth2: + description: |- + Optional OAuth 2.0 configuration. + Cannot be set at the same time as `authorization` or `basic_auth`. + properties: + clientId: + description: |- + `clientId` specifies a key of a Secret or ConfigMap containing the + OAuth2 client's ID. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: |- + `clientSecret` specifies a key of a Secret containing the OAuth2 + client's secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpointParams: + additionalProperties: + type: string + description: |- + `endpointParams` configures the HTTP parameters to append to the token + URL. + type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + scopes: + description: '`scopes` defines the OAuth2 scopes used for the token request.' + items: + type: string + type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + tokenUrl: + description: '`tokenURL` configures the URL to fetch the token from.' + minLength: 1 + type: string + required: + - clientId + - clientSecret + - tokenUrl + type: object + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + refreshInterval: + description: |- + Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function. + Supported units: y, w, d, h, m, s, ms + Examples: `30s`, `1m`, `1h20m15s`, `15d` + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ + type: string + region: + type: string + server: + minLength: 1 + type: string + tagSeparator: + type: string + tlsConfig: + description: TLS configuration applying to the target HTTP endpoint. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + required: + - server + type: object + type: array + oauth2: + description: OAuth2 configuration to use on every scrape request. + properties: + clientId: + description: |- + `clientId` specifies a key of a Secret or ConfigMap containing the + OAuth2 client's ID. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: |- + `clientSecret` specifies a key of a Secret containing the OAuth2 + client's secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpointParams: + additionalProperties: + type: string + description: |- + `endpointParams` configures the HTTP parameters to append to the token + URL. + type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + scopes: + description: '`scopes` defines the OAuth2 scopes used for the token request.' + items: + type: string + type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + tokenUrl: + description: '`tokenURL` configures the URL to fetch the token from.' + minLength: 1 + type: string + required: + - clientId + - clientSecret + - tokenUrl + type: object openstackSDConfigs: description: OpenStackSDConfigs defines a list of OpenStack service discovery configurations. items: @@ -5807,9 +9000,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5856,9 +9047,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5917,9 +9106,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5941,9 +9128,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5969,9 +9154,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -5993,9 +9176,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6021,9 +9202,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6032,6 +9211,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -6075,9 +9276,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6099,9 +9298,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6158,9 +9355,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6174,24 +9369,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string puppetDBSDConfigs: @@ -6219,9 +9407,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6234,10 +9420,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -6261,9 +9445,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6287,9 +9469,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6317,8 +9497,7 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: string oauth2: description: |- @@ -6343,9 +9522,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6367,9 +9544,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6394,9 +9569,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6412,11 +9585,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -6447,9 +9822,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6463,24 +9836,17 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: object x-kubernetes-map-type: atomic proxyFromEnvironment: description: |- Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). - If unset, Prometheus uses its default value. - - It requires Prometheus >= v2.43.0. + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. type: boolean proxyUrl: - description: |- - `proxyURL` defines the HTTP proxy server to use. - - - It requires Prometheus >= v2.43.0. + description: '`proxyURL` defines the HTTP proxy server to use.' pattern: ^http(s)?://.+$ type: string query: @@ -6512,9 +9878,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6536,9 +9900,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6564,9 +9926,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6588,9 +9948,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6616,9 +9974,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6627,6 +9983,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -6652,7 +10030,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -6660,11 +10037,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -6694,7 +10069,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -6706,7 +10080,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -6728,19 +10101,304 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object + minItems: 1 type: array sampleLimit: description: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. format: int64 type: integer + scalewaySDConfigs: + description: ScalewaySDConfigs defines a list of Scaleway instances and baremetal service discovery configurations. + items: + description: |- + ScalewaySDConfig configurations allow retrieving scrape targets from Scaleway instances and baremetal services. + See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scaleway_sd_config + properties: + accessKey: + description: Access key to use. https://console.scaleway.com/project/credentials + minLength: 1 + type: string + apiURL: + description: API URL to use when doing the server listing requests. + pattern: ^http(s)?://.+$ + type: string + enableHTTP2: + description: Whether to enable HTTP2. + type: boolean + followRedirects: + description: Configure whether HTTP requests follow HTTP 3xx redirects. + type: boolean + nameFilter: + description: NameFilter specify a name filter (works as a LIKE) to apply on the server listing request. + minLength: 1 + type: string + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + port: + description: The port to scrape metrics from. + format: int32 + maximum: 65535 + minimum: 0 + type: integer + projectID: + description: Project ID of the targets. + minLength: 1 + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string + refreshInterval: + description: Refresh interval to re-read the list of instances. + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ + type: string + role: + description: Service of the targets to retrieve. Must be `Instance` or `Baremetal`. + enum: + - Instance + - Baremetal + type: string + secretKey: + description: Secret key to use when listing targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tagsFilter: + description: TagsFilter specify a tag filter (a server needs to have all defined tags to be listed) to apply on the server listing request. + items: + minLength: 1 + type: string + minItems: 1 + type: array + x-kubernetes-list-type: set + tlsConfig: + description: TLS configuration to use on every scrape request + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + zone: + description: Zone is the availability zone of your targets (e.g. fr-par-1). + minLength: 1 + type: string + required: + - accessKey + - projectID + - role + - secretKey + type: object + type: array scheme: description: |- Configures the protocol scheme used for requests. @@ -6762,10 +10420,8 @@ spec: The protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -6781,6 +10437,7 @@ spec: - OpenMetricsText1.0.0 - PrometheusText0.0.4 type: string + minItems: 1 type: array x-kubernetes-list-type: set scrapeTimeout: @@ -6831,9 +10488,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6855,9 +10510,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6883,9 +10536,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -6907,9 +10558,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6935,9 +10584,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -6946,6 +10593,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml index 11861cea..db9ffbe3 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: servicemonitors.monitoring.coreos.com spec: @@ -24,7 +24,15 @@ spec: - name: v1 schema: openAPIV3Schema: - description: ServiceMonitor defines monitoring for a set of services. + description: |- + The `ServiceMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of services. + Among other things, it allows to specify: + * The services to scrape via label selectors. + * The container ports to scrape. + * Authentication credentials to use. + * Target and metric relabeling. + + `Prometheus` and `PrometheusAgent` objects select `ServiceMonitor` objects using label and namespace selectors. properties: apiVersion: description: |- @@ -53,13 +61,15 @@ spec: `attachMetadata` defines additional metadata which is added to the discovered targets. - It requires Prometheus >= v2.37.0. properties: node: description: |- - When set to true, Prometheus must have the `get` permission on the - `Nodes` objects. + When set to true, Prometheus attaches node metadata to the discovered + targets. + + The Prometheus service account must have the `list` and `watch` + permissions on the `Nodes` objects. type: boolean type: object bodySizeLimit: @@ -67,12 +77,14 @@ spec: When defined, bodySizeLimit specifies a job level limit on the size of uncompressed response body that will be accepted by Prometheus. - It requires Prometheus >= v2.28.0. pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ type: string endpoints: - description: List of endpoints part of this ServiceMonitor. + description: |- + List of endpoints part of this ServiceMonitor. + Defines how to scrape metrics from Kubernetes [Endpoints](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) objects. + In most cases, an Endpoints object is backed by a Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) object with the same name and labels. items: description: |- Endpoint defines an endpoint serving Prometheus metrics to be scraped by @@ -83,7 +95,6 @@ spec: `authorization` configures the Authorization header credentials to use when scraping the target. - Cannot be set at the same time as `basicAuth`, or `oauth2`. properties: credentials: @@ -99,9 +110,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -114,10 +123,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -126,7 +133,6 @@ spec: `basicAuth` configures the Basic Authentication credentials to use when scraping the target. - Cannot be set at the same time as `authorization`, or `oauth2`. properties: password: @@ -144,9 +150,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -170,9 +174,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -186,7 +188,6 @@ spec: description: |- File to read bearer token for scraping the target. - Deprecated: use `authorization` instead. type: string bearerTokenSecret: @@ -195,7 +196,6 @@ spec: token for scraping targets. The secret needs to be in the same namespace as the ServiceMonitor object and readable by the Prometheus Operator. - Deprecated: use `authorization` instead. properties: key: @@ -208,9 +208,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -227,10 +225,8 @@ spec: When true, the pods which are not running (e.g. either in Failed or Succeeded state) are dropped during the target discovery. - If unset, the filtering is enabled. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase type: boolean followRedirects: @@ -252,7 +248,6 @@ spec: description: |- Interval at which Prometheus scrapes the metrics from the target. - If empty, Prometheus uses the global scrape interval. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ type: string @@ -265,7 +260,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -273,11 +267,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -307,7 +299,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -319,7 +310,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -341,11 +331,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -354,10 +342,8 @@ spec: description: |- `oauth2` configures the OAuth2 settings to use when scraping the target. - It requires Prometheus >= 2.27.0. - Cannot be set at the same time as `authorization`, or `basicAuth`. properties: clientId: @@ -378,9 +364,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -402,9 +386,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -429,9 +411,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -447,11 +427,213 @@ spec: `endpointParams` configures the HTTP parameters to append to the token URL. type: object + noProxy: + description: |- + `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names + that should be excluded from proxying. IP and domain names can + contain port numbers. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: string + proxyConnectHeader: + additionalProperties: + items: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + description: |- + ProxyConnectHeader optionally specifies headers to send to + proxies during CONNECT requests. + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: object + x-kubernetes-map-type: atomic + proxyFromEnvironment: + description: |- + Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). + + It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0. + type: boolean + proxyUrl: + description: '`proxyURL` defines the HTTP proxy server to use.' + pattern: ^http(s)?://.+$ + type: string scopes: description: '`scopes` defines the OAuth2 scopes used for the token request.' items: type: string type: array + tlsConfig: + description: |- + TLS configuration to use when connecting to the OAuth2 server. + It requires Prometheus >= v2.43.0. + properties: + ca: + description: Certificate authority used when verifying server certificates. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keySecret: + description: Secret containing the client key file for the targets. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object tokenUrl: description: '`tokenURL` configures the URL to fetch the token from.' minLength: 1 @@ -472,14 +654,12 @@ spec: description: |- HTTP path from which to scrape for metrics. - If empty, Prometheus uses the default value (e.g. `/metrics`). type: string port: description: |- Name of the Service port which this endpoint refers to. - It takes precedence over `targetPort`. type: string proxyUrl: @@ -492,20 +672,16 @@ spec: `relabelings` configures the relabeling rules to apply the target's metadata labels. - The Operator automatically adds relabelings for a few standard Kubernetes fields. - The original scrape job's name is available via the `__tmp_prometheus_job_name` label. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config items: description: |- RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -513,11 +689,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -547,7 +721,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -559,7 +732,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -581,11 +753,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -594,11 +764,9 @@ spec: description: |- HTTP scheme to use for scraping. - `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. - If empty, Prometheus uses the default value `http`. enum: - http @@ -608,7 +776,6 @@ spec: description: |- Timeout after which Prometheus considers the scrape to be failed. - If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ @@ -640,9 +807,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -664,9 +829,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -695,9 +858,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -719,9 +880,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -753,9 +912,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -764,6 +921,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -774,7 +953,6 @@ spec: the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false. - It requires Prometheus >= v2.48.0. type: boolean type: object @@ -784,12 +962,10 @@ spec: `jobLabel` selects the label from the associated Kubernetes `Service` object which will be used as the `job` label for all metrics. - For example if `jobLabel` is set to `foo` and the Kubernetes `Service` object is labeled with `foo: bar`, then Prometheus adds the `job="bar"` label to all ingested metrics. - If the value of this field is empty or if the label doesn't exist for the given Service, the `job` label of the metrics defaults to the name of the associated Kubernetes `Service`. @@ -799,7 +975,6 @@ spec: Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. - It requires Prometheus >= v2.47.0. format: int64 type: integer @@ -807,7 +982,6 @@ spec: description: |- Per-scrape limit on number of labels that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer @@ -815,7 +989,6 @@ spec: description: |- Per-scrape limit on length of labels name that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer @@ -823,14 +996,13 @@ spec: description: |- Per-scrape limit on length of labels value that will be accepted for a sample. - It requires Prometheus >= v2.27.0. format: int64 type: integer namespaceSelector: description: |- - Selector to select which namespaces the Kubernetes `Endpoints` objects - are discovered from. + `namespaceSelector` defines in which namespace(s) Prometheus should discover the services. + By default, the services are discovered in the same namespace as the `ServiceMonitor` object but it is possible to select pods across different/all namespaces. properties: any: description: |- @@ -865,10 +1037,8 @@ spec: `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the protocols supported by Prometheus in order of preference (from most to least preferred). - If unset, Prometheus uses its default value. - It requires Prometheus >= v2.49.0. items: description: |- @@ -887,7 +1057,7 @@ spec: type: array x-kubernetes-list-type: set selector: - description: Label selector to select the Kubernetes `Endpoints` objects. + description: Label selector to select the Kubernetes `Endpoints` objects to scrape metrics from. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -944,6 +1114,7 @@ spec: format: int64 type: integer required: + - endpoints - selector type: object required: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml index 568b29c3..bda41139 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml @@ -1,11 +1,11 @@ -# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml +# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.prometheus.io/version: 0.75.1 + controller-gen.kubebuilder.io/version: v0.16.1 + operator.prometheus.io/version: 0.77.1 argocd.argoproj.io/sync-options: ServerSideApply=true name: thanosrulers.monitoring.coreos.com spec: @@ -51,7 +51,12 @@ spec: name: v1 schema: openAPIV3Schema: - description: ThanosRuler defines a ThanosRuler deployment. + description: |- + The `ThanosRuler` custom resource definition (CRD) defines a desired [Thanos Ruler](https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md) setup to run in a Kubernetes cluster. + + A `ThanosRuler` instance requires at least one compatible Prometheus API endpoint (either Thanos Querier or Prometheus services). + + The resource defines via label and namespace selectors which `PrometheusRule` objects should be associated to the deployed Thanos Ruler instances. properties: apiVersion: description: |- @@ -365,7 +370,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -380,7 +385,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -541,7 +546,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -556,7 +561,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -710,7 +715,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -725,7 +730,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -886,7 +891,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -901,7 +906,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1015,9 +1020,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1041,9 +1044,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1139,9 +1140,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -1200,9 +1199,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -1240,9 +1237,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -1262,9 +1257,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -1538,11 +1531,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -1744,11 +1737,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -1891,11 +1884,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -1906,6 +1897,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -2027,7 +2024,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -2105,7 +2102,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2184,11 +2180,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2393,10 +2389,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -2404,11 +2398,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -2519,9 +2511,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2543,9 +2533,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2574,9 +2562,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2598,9 +2584,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2632,9 +2616,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2643,6 +2625,28 @@ spec: - key type: object x-kubernetes-map-type: atomic + maxVersion: + description: |- + Maximum acceptable TLS version. + + It requires Prometheus >= v2.41.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string + minVersion: + description: |- + Minimum acceptable TLS version. + + It requires Prometheus >= v2.35.0. + enum: + - TLS10 + - TLS11 + - TLS12 + - TLS13 + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -2700,9 +2704,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -2785,9 +2787,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -2846,9 +2846,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -2886,9 +2884,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap must be defined @@ -2908,9 +2904,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret must be defined @@ -3184,11 +3178,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3390,11 +3384,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3537,11 +3531,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -3552,6 +3544,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -3673,7 +3671,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -3751,7 +3749,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -3830,11 +3827,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4039,10 +4036,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -4050,11 +4045,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -4144,9 +4137,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4169,7 +4160,6 @@ spec: description: |- PodMetadata configures labels and annotations which are propagated to the ThanosRuler pods. - The following items are reserved and cannot be overridden: * "app.kubernetes.io/name" label, set to "thanos-ruler". * "app.kubernetes.io/managed-by" label, set to "prometheus-operator". @@ -4254,9 +4244,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -4286,11 +4274,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -4301,6 +4287,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -4469,12 +4461,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -4557,7 +4547,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4567,18 +4556,28 @@ spec: type: object supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -4686,7 +4685,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -4696,11 +4694,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -4895,7 +4891,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -5146,7 +5142,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -5175,7 +5171,7 @@ spec: that it does not recognizes, then it should ignore that update and let other controllers handle it. type: string - description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -5185,7 +5181,7 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." + description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature." type: object capacity: additionalProperties: @@ -5223,7 +5219,16 @@ spec: status: type: string type: - description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type + description: |- + PersistentVolumeClaimConditionType defines the condition of PV claim. + Valid values are: + - "Resizing", "FileSystemResizePending" + + If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected: + - "ControllerResizeError", "NodeResizeError" + + If VolumeAttributesClass feature gate is enabled, then following additional values can be expected: + - "ModifyVolumeError", "ModifyingVolume" type: string required: - status @@ -5237,13 +5242,13 @@ spec: description: |- currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). type: string modifyVolumeStatus: description: |- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. - This is an alpha field and requires enabling VolumeAttributesClass feature. + This is a beta field and requires enabling VolumeAttributesClass feature (off by default). properties: status: description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately." @@ -5362,7 +5367,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -5402,7 +5406,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -5420,7 +5423,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -5432,7 +5434,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -5480,10 +5481,8 @@ spec: description: |- TracingConfig configures tracing in Thanos. - `tracingConfigFile` takes precedence over this field. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. properties: @@ -5497,9 +5496,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -5512,10 +5509,8 @@ spec: description: |- TracingConfig specifies the path of the tracing configuration file. - This field takes precedence over `tracingConfig`. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: string @@ -5557,10 +5552,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -5568,11 +5561,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -5611,7 +5602,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -5647,6 +5637,7 @@ spec: description: diskURI is the URI of data disk in the blob storage type: string fsType: + default: ext4 description: |- fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -5656,6 +5647,7 @@ spec: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string readOnly: + default: false description: |- readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. @@ -5719,9 +5711,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -5763,9 +5753,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -5836,9 +5824,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -5874,9 +5860,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6001,7 +5985,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -6012,17 +5995,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -6036,7 +6016,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -6046,11 +6025,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -6245,7 +6222,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -6268,7 +6245,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -6333,9 +6309,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6366,7 +6340,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6446,9 +6419,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -6465,6 +6435,41 @@ spec: required: - path type: object + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -6483,7 +6488,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -6495,6 +6499,7 @@ spec: description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: + default: default description: |- iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). @@ -6526,9 +6531,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -6641,23 +6644,24 @@ spec: format: int32 type: integer sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. properties: clusterTrustBundle: description: |- ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -6785,9 +6789,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional specify whether the ConfigMap or its keys must be defined @@ -6904,9 +6906,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: optional field specify whether the Secret or its key must be defined @@ -6992,7 +6992,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -7000,6 +6999,7 @@ spec: More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string keyring: + default: /etc/ceph/keyring description: |- keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. @@ -7014,6 +7014,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd description: |- pool is the rados pool name. Default is rbd. @@ -7039,13 +7040,12 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic user: + default: admin description: |- user is the rados user name. Default is admin. @@ -7059,6 +7059,7 @@ spec: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. properties: fsType: + default: xfs description: |- fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. @@ -7088,9 +7089,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -7098,6 +7097,7 @@ spec: description: sslEnabled Flag enable/disable SSL communication with Gateway, default false type: boolean storageMode: + default: ThinProvisioned description: |- storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. @@ -7207,9 +7207,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string type: object x-kubernetes-map-type: atomic @@ -7328,9 +7326,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7352,9 +7348,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7364,6 +7358,11 @@ spec: type: object x-kubernetes-map-type: atomic type: object + certFile: + description: |- + Path to the TLS certificate file in the Prometheus container for the server. + Mutually exclusive with `cert`. + type: string cipherSuites: description: |- List of supported cipher suites for TLS versions up to TLS 1.2. If empty, @@ -7388,9 +7387,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -7412,9 +7409,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7430,6 +7425,11 @@ spec: For more detail on clientAuth options: https://golang.org/pkg/crypto/tls/#ClientAuthType type: string + clientCAFile: + description: |- + Path to the CA certificate file for client certificate authentication to the server. + Mutually exclusive with `client_ca`. + type: string curvePreferences: description: |- Elliptic curves that will be used in an ECDHE handshake, in preference @@ -7438,6 +7438,11 @@ spec: items: type: string type: array + keyFile: + description: |- + Path to the TLS key file in the Prometheus container for the server. + Mutually exclusive with `keySecret`. + type: string keySecret: description: Secret containing the TLS key for the server. properties: @@ -7451,9 +7456,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key must be defined @@ -7475,9 +7478,6 @@ spec: cipher suite. If true then the server's preference, as expressed in the order of elements in cipherSuites, is used. type: boolean - required: - - cert - - keySecret type: object type: object type: object @@ -7494,7 +7494,7 @@ spec: format: int32 type: integer conditions: - description: The current state of the Alertmanager object. + description: The current state of the ThanosRuler object. items: description: |- Condition represents the state of the resources associated with the diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/Chart.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/Chart.yaml index 7ce913ea..41d7fc05 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/Chart.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/Chart.yaml @@ -6,7 +6,7 @@ annotations: - name: Upstream Project url: https://github.com/grafana/grafana apiVersion: v2 -appVersion: 11.1.0 +appVersion: 11.2.2 description: The leading tool for querying and visualizing time series and metrics. home: https://grafana.com icon: https://artifacthub.io/image/b4fed1a7-6c8f-4945-b99d-096efa3e4116 @@ -32,4 +32,4 @@ sources: - https://github.com/grafana/grafana - https://github.com/grafana/helm-charts type: application -version: 8.3.4 +version: 8.5.5 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/README.md b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/README.md index 8c2a9872..4ab1a01c 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/README.md +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/README.md @@ -121,7 +121,7 @@ need to instead set `global.imageRegistry`. | `persistence.subPath` | Mount a sub dir of the persistent volume (can be templated) | `nil` | | `persistence.inMemory.enabled` | If persistence is not enabled, whether to mount the local storage in-memory to improve performance | `false` | | `persistence.inMemory.sizeLimit` | SizeLimit for the in-memory local storage | `nil` | -| `persistence.disableWarning` | Hide NOTES warning, useful when persiting to a database | `false` | +| `persistence.disableWarning` | Hide NOTES warning, useful when persisting to a database | `false` | | `initChownData.enabled` | If false, don't reset data ownership at startup | true | | `initChownData.image.registry` | init-chown-data container image registry | `docker.io` | | `initChownData.image.repository` | init-chown-data container image repository | `busybox` | @@ -165,7 +165,7 @@ need to instead set `global.imageRegistry`. | `lifecycleHooks` | Lifecycle hooks for podStart and preStop [Example](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/#define-poststart-and-prestop-handlers) | `{}` | | `sidecar.image.registry` | Sidecar image registry | `quay.io` | | `sidecar.image.repository` | Sidecar image repository | `kiwigrid/k8s-sidecar` | -| `sidecar.image.tag` | Sidecar image tag | `1.26.0` | +| `sidecar.image.tag` | Sidecar image tag | `1.28.0` | | `sidecar.image.sha` | Sidecar image sha (optional) | `""` | | `sidecar.imagePullPolicy` | Sidecar image pull policy | `IfNotPresent` | | `sidecar.resources` | Sidecar resources | `{}` | @@ -292,6 +292,8 @@ need to instead set `global.imageRegistry`. | `imageRenderer.service.targetPort` | image-renderer service port used by service | `8081` | | `imageRenderer.appProtocol` | Adds the appProtocol field to the service | `` | | `imageRenderer.grafanaSubPath` | Grafana sub path to use for image renderer callback url | `''` | +| `imageRenderer.serverURL` | Remote image renderer url | `''` | +| `imageRenderer.renderingCallbackURL` | Callback url for the Grafana image renderer | `''` | | `imageRenderer.podPortName` | name of the image-renderer port on the pod | `http` | | `imageRenderer.revisionHistoryLimit` | number of image-renderer replica sets to keep | `10` | | `imageRenderer.networkPolicy.limitIngress` | Enable a NetworkPolicy to limit inbound traffic from only the created grafana pods | `true` | @@ -718,7 +720,7 @@ stringData: Include in the `extraSecretMounts` configuration flag: ```yaml -- extraSecretMounts: +extraSecretMounts: - name: auth-generic-oauth-secret-mount secretName: auth-generic-oauth-secret defaultMode: 0440 @@ -731,7 +733,7 @@ Include in the `extraSecretMounts` configuration flag: This example uses a CSI driver e.g. retrieving secrets using [Azure Key Vault Provider](https://github.com/Azure/secrets-store-csi-driver-provider-azure) ```yaml -- extraSecretMounts: +extraSecretMounts: - name: secrets-store-inline mountPath: /run/secrets readOnly: true diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/ci/with-nondefault-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/ci/with-nondefault-values.yaml new file mode 100644 index 00000000..fb5c1794 --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/ci/with-nondefault-values.yaml @@ -0,0 +1,6 @@ +global: + environment: prod +ingress: + enabled: true + hosts: + - monitoring-{{ .Values.global.environment }}.example.com diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl index f3ebc37c..2a68cb6f 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl @@ -68,7 +68,7 @@ Common labels helm.sh/chart: {{ include "grafana.chart" . }} {{ include "grafana.selectorLabels" . }} {{- if or .Chart.AppVersion .Values.image.tag }} -app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} +app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | trunc 63 | trimSuffix "-" | quote }} {{- end }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- with .Values.extraLabels }} @@ -91,7 +91,7 @@ Common labels helm.sh/chart: {{ include "grafana.chart" . }} {{ include "grafana.imageRenderer.selectorLabels" . }} {{- if or .Chart.AppVersion .Values.image.tag }} -app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} +app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | trunc 63 | trimSuffix "-" | quote }} {{- end }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl index 93f8da30..716e27d0 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl @@ -1059,9 +1059,17 @@ containers: {{- end }} {{- if .Values.imageRenderer.enabled }} - name: GF_RENDERING_SERVER_URL + {{- if .Values.imageRenderer.serverURL }} + value: {{ .Values.imageRenderer.serverURL | quote }} + {{- else }} value: http://{{ include "grafana.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render + {{- end }} - name: GF_RENDERING_CALLBACK_URL + {{- if .Values.imageRenderer.renderingCallbackURL }} + value: {{ .Values.imageRenderer.renderingCallbackURL | quote }} + {{- else }} value: {{ .Values.imageRenderer.grafanaProtocol }}://{{ include "grafana.fullname" . }}.{{ include "grafana.namespace" . }}:{{ .Values.service.port }}/{{ .Values.imageRenderer.grafanaSubPath }} + {{- end }} {{- end }} - name: GF_PATHS_DATA value: {{ (get .Values "grafana.ini").paths.data }} @@ -1156,6 +1164,9 @@ volumes: - name: {{ tpl .name $root }} configMap: name: {{ tpl .configMap $root }} + {{- with .optional }} + optional: {{ . }} + {{- end }} {{- with .items }} items: {{- toYaml . | nindent 8 }} @@ -1261,6 +1272,9 @@ volumes: secret: secretName: {{ .secretName }} defaultMode: {{ .defaultMode }} + {{- with .optional }} + optional: {{ . }} + {{- end }} {{- with .items }} items: {{- toYaml . | nindent 8 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/dashboards-json-configmap.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/dashboards-json-configmap.yaml index b96ce720..df0ed0d8 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/dashboards-json-configmap.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/dashboards-json-configmap.yaml @@ -9,9 +9,6 @@ metadata: labels: {{- include "grafana.labels" $ | nindent 4 }} dashboard-provider: {{ $provider }} - {{- if $.Values.sidecar.dashboards.enabled }} - {{ $.Values.sidecar.dashboards.label }}: {{ $.Values.sidecar.dashboards.labelValue | quote }} - {{- end }} {{- if $dashboards }} data: {{- $dashboardFound := false }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/deployment.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/deployment.yaml index 46c016fa..d309a7e5 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/deployment.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/deployment.yaml @@ -14,7 +14,7 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- if and (not .Values.autoscaling.enabled) (.Values.replicas) }} + {{- if (not .Values.autoscaling.enabled) }} replicas: {{ .Values.replicas }} {{- end }} revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/pvc.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/pvc.yaml index 0a4613ed..d1c4b2de 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/pvc.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/pvc.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "pvc")}} +{{- if and (not .Values.useStatefulSet) .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "pvc")}} apiVersion: v1 kind: PersistentVolumeClaim metadata: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/statefulset.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/statefulset.yaml index e6c944a4..7546c188 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/statefulset.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/statefulset.yaml @@ -39,7 +39,9 @@ spec: {{- include "grafana.pod" . | nindent 6 }} {{- if .Values.persistence.enabled}} volumeClaimTemplates: - - metadata: + - apiVersion: v1 + kind: PersistentVolumeClaim + metadata: name: storage spec: accessModes: {{ .Values.persistence.accessModes }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-configmap.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-configmap.yaml index 01c96c92..1e81bee9 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-configmap.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-configmap.yaml @@ -5,7 +5,7 @@ metadata: name: {{ include "grafana.fullname" . }}-test namespace: {{ include "grafana.namespace" . }} annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" labels: {{- include "grafana.labels" . | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-podsecuritypolicy.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-podsecuritypolicy.yaml index 1821772a..c13a3bf6 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-podsecuritypolicy.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-podsecuritypolicy.yaml @@ -4,7 +4,7 @@ kind: PodSecurityPolicy metadata: name: {{ include "grafana.fullname" . }}-test annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" labels: {{- include "grafana.labels" . | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-role.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-role.yaml index cb4c7820..75dddfdd 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-role.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-role.yaml @@ -5,7 +5,7 @@ metadata: name: {{ include "grafana.fullname" . }}-test namespace: {{ include "grafana.namespace" . }} annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" labels: {{- include "grafana.labels" . | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-rolebinding.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-rolebinding.yaml index f40d791f..c0d2d39e 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-rolebinding.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-rolebinding.yaml @@ -5,7 +5,7 @@ metadata: name: {{ include "grafana.fullname" . }}-test namespace: {{ include "grafana.namespace" . }} annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" labels: {{- include "grafana.labels" . | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-serviceaccount.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-serviceaccount.yaml index 38fba359..7af89827 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-serviceaccount.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-serviceaccount.yaml @@ -7,6 +7,6 @@ metadata: name: {{ include "grafana.serviceAccountNameTest" . }} namespace: {{ include "grafana.namespace" . }} annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test.yaml index 9e88afcf..2484a96d 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/templates/tests/test.yaml @@ -7,7 +7,7 @@ metadata: labels: {{- include "grafana.labels" . | nindent 4 }} annotations: - "helm.sh/hook": test-success + "helm.sh/hook": test "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" namespace: {{ include "grafana.namespace" . }} spec: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/values.yaml index 84bd425d..1d05a6fc 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/values.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/grafana/values.yaml @@ -164,6 +164,7 @@ extraConfigmapMounts: [] # subPath: certificates.crt # (optional) # configMap: certs-configmap # readOnly: true + # optional: false extraEmptyDirMounts: [] @@ -366,7 +367,7 @@ extraContainerVolumes: [] # emptyDir: {} ## Enable persistence using Persistent Volume Claims -## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ +## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ ## persistence: type: pvc @@ -539,6 +540,7 @@ extraSecretMounts: [] # mountPath: /etc/secrets # secretName: grafana-secret-files # readOnly: true + # optional: false # subPath: "" # # for AWS EKS (cloudwatch) use the following (see also instruction in env: above) @@ -795,7 +797,7 @@ grafana.ini: grafana_net: url: https://grafana.net server: - domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ .Values.ingress.hosts | first }}{{ else }}''{{ end }}" + domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ tpl (.Values.ingress.hosts | first) . }}{{ else }}''{{ end }}" ## grafana Authentication can be enabled with the following values on grafana.ini # server: # The full public facing url you use in browser, used for redirects and emails @@ -859,7 +861,7 @@ sidecar: # -- The Docker registry registry: quay.io repository: kiwigrid/k8s-sidecar - tag: 1.26.1 + tag: 1.28.0 sha: "" imagePullPolicy: IfNotPresent resources: {} @@ -1158,6 +1160,10 @@ imageRenderer: targetCPU: "60" targetMemory: "" behavior: {} + # The url of remote image renderer if it is not in the same namespace with the grafana instance + serverURL: "" + # The callback url of grafana instances if it is not in the same namespace with the remote image renderer + renderingCallbackURL: "" image: # -- The Docker registry registry: docker.io diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml index 9dea6594..75521331 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml @@ -4,7 +4,7 @@ annotations: - name: Chart Source url: https://github.com/prometheus-community/helm-charts apiVersion: v2 -appVersion: 2.12.0 +appVersion: 2.13.0 description: Install kube-state-metrics to generate and expose cluster-level metrics home: https://github.com/kubernetes/kube-state-metrics/ keywords: @@ -23,4 +23,4 @@ name: kube-state-metrics sources: - https://github.com/kubernetes/kube-state-metrics/ type: application -version: 5.21.0 +version: 5.26.0 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/_helpers.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/_helpers.tpl index a4358c87..3dd326da 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/_helpers.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/_helpers.tpl @@ -66,7 +66,7 @@ app.kubernetes.io/part-of: {{ template "kube-state-metrics.name" . }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} {{- if .Values.customLabels }} -{{ toYaml .Values.customLabels }} +{{ tpl (toYaml .Values.customLabels) . }} {{- end }} {{- if .Values.releaseLabel }} release: {{ .Release.Name }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/deployment.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/deployment.yaml index 5d32f82f..2aff1888 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/deployment.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/deployment.yaml @@ -31,9 +31,12 @@ spec: metadata: labels: {{- include "kube-state-metrics.labels" . | indent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} {{- if .Values.podAnnotations }} annotations: -{{ toYaml .Values.podAnnotations | indent 8 }} + {{ toYaml .Values.podAnnotations | nindent 8 }} {{- end }} spec: automountServiceAccountToken: {{ .Values.automountServiceAccountToken }} @@ -147,6 +150,26 @@ spec: name: "metrics" {{- end }} {{- end }} + {{- if .Values.startupProbe.enabled }} + startupProbe: + failureThreshold: {{ .Values.startupProbe.failureThreshold }} + httpGet: + {{- if .Values.hostNetwork }} + host: 127.0.0.1 + {{- end }} + httpHeaders: + {{- range $_, $header := .Values.startupProbe.httpGet.httpHeaders }} + - name: {{ $header.name }} + value: {{ $header.value }} + {{- end }} + path: /healthz + port: {{ $servicePort }} + scheme: {{ upper .Values.startupProbe.httpGet.scheme }} + initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.startupProbe.periodSeconds }} + successThreshold: {{ .Values.startupProbe.successThreshold }} + timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }} + {{- end }} livenessProbe: failureThreshold: {{ .Values.livenessProbe.failureThreshold }} httpGet: @@ -158,7 +181,7 @@ spec: - name: {{ $header.name }} value: {{ $header.value }} {{- end }} - path: /healthz + path: /livez port: {{ $servicePort }} scheme: {{ upper .Values.livenessProbe.httpGet.scheme }} initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} @@ -176,7 +199,7 @@ spec: - name: {{ $header.name }} value: {{ $header.value }} {{- end }} - path: / + path: /readyz port: {{ $servicePort }} scheme: {{ upper .Values.readinessProbe.httpGet.scheme }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} @@ -278,13 +301,13 @@ spec: affinity: {{ toYaml .Values.affinity | indent 8 }} {{- end }} - {{- if .Values.nodeSelector }} + {{- with .Values.nodeSelector }} nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} +{{ tpl (toYaml .) $ | indent 8 }} {{- end }} - {{- if .Values.tolerations }} + {{- with .Values.tolerations }} tolerations: -{{ toYaml .Values.tolerations | indent 8 }} +{{ tpl (toYaml .) $ | indent 8 }} {{- end }} {{- if .Values.topologySpreadConstraints }} topologySpreadConstraints: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml index 2a978113..a7b2bdad 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml @@ -314,6 +314,9 @@ annotations: {} # Annotations to be added to the pod podAnnotations: {} +# Labels to be added to the pod +podLabels: {} + ## Assign a PriorityClassName to pods if set # priorityClassName: "" @@ -497,6 +500,23 @@ initContainers: [] # - name: crd-sidecar # image: kiwigrid/k8s-sidecar:latest +## Settings for startup, liveness and readiness probes +## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ +## + +## Startup probe can optionally be enabled. +## +startupProbe: + enabled: false + failureThreshold: 3 + httpGet: + httpHeaders: [] + scheme: http + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + ## Liveness probe ## livenessProbe: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml index 5af1f445..8c418728 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml @@ -4,7 +4,7 @@ annotations: - name: Chart Source url: https://github.com/prometheus-community/helm-charts apiVersion: v2 -appVersion: 1.8.1 +appVersion: 1.8.2 description: A Helm chart for prometheus node-exporter home: https://github.com/prometheus/node_exporter/ keywords: @@ -22,4 +22,4 @@ name: prometheus-node-exporter sources: - https://github.com/prometheus/node_exporter/ type: application -version: 4.37.0 +version: 4.39.0 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/common-labels-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/common-labels-values.yaml new file mode 100644 index 00000000..719e9356 --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/common-labels-values.yaml @@ -0,0 +1,4 @@ +--- +commonLabels: + foo: bar + baz: '{{ include "prometheus-node-exporter.fullname" . }}' diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/default-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/default-values.yaml new file mode 100644 index 00000000..39d98f71 --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/default-values.yaml @@ -0,0 +1 @@ +## Default values test case diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/pod-labels-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/pod-labels-values.yaml new file mode 100644 index 00000000..7de36a6a --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/pod-labels-values.yaml @@ -0,0 +1,4 @@ +--- +podLabels: + foo: bar + baz: '{{ .Chart.AppVersion }}' diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/service-labels-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/service-labels-values.yaml new file mode 100644 index 00000000..9c5e3650 --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/service-labels-values.yaml @@ -0,0 +1,5 @@ +--- +service: + labels: + foo: bar + baz: quux diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/serviceport-values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/serviceport-values.yaml new file mode 100644 index 00000000..b0b7be65 --- /dev/null +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/serviceport-values.yaml @@ -0,0 +1,3 @@ +--- +service: + servicePort: 80 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/_helpers.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/_helpers.tpl index 8e84832c..6f6518b7 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/_helpers.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/_helpers.tpl @@ -43,8 +43,8 @@ app.kubernetes.io/part-of: {{ include "prometheus-node-exporter.name" . }} {{- with .Chart.AppVersion }} app.kubernetes.io/version: {{ . | quote }} {{- end }} -{{- with .Values.podLabels }} -{{ toYaml . }} +{{- with .Values.commonLabels }} +{{ tpl (toYaml .) $ }} {{- end }} {{- if .Values.releaseLabel }} release: {{ .Release.Name }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml index 23896a23..37ac60e6 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml @@ -26,6 +26,9 @@ spec: {{- end }} labels: {{- include "prometheus-node-exporter.labels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- tpl (toYaml .) $ | nindent 8 }} + {{- end }} spec: automountServiceAccountToken: {{ ternary true false (or .Values.serviceAccount.automountServiceAccountToken .Values.kubeRBACProxy.enabled) }} {{- with .Values.securityContext }} @@ -245,6 +248,7 @@ spec: {{- end }} hostNetwork: {{ .Values.hostNetwork }} hostPID: {{ .Values.hostPID }} + hostIPC: {{ .Values.hostIPC }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/service.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/service.yaml index 8308b7b2..abaa31b7 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/service.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/service.yaml @@ -6,6 +6,9 @@ metadata: namespace: {{ include "prometheus-node-exporter.namespace" . }} labels: {{- include "prometheus-node-exporter.labels" $ | nindent 4 }} + {{- with .Values.service.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} {{- with .Values.service.annotations }} annotations: {{- toYaml . | nindent 4 }} @@ -23,7 +26,7 @@ spec: clusterIP: "{{ .Values.service.clusterIP }}" {{- end }} ports: - - port: {{ .Values.service.port }} + - port: {{ .Values.service.servicePort | default .Values.service.port }} {{- if ( and (eq .Values.service.type "NodePort" ) (not (empty .Values.service.nodePort)) ) }} nodePort: {{ .Values.service.nodePort }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml index 13235673..fac214ae 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml @@ -80,25 +80,49 @@ kubeRBACProxy: # limits: # cpu: 100m # memory: 64Mi - # requests: - # cpu: 10m - # memory: 32Mi + # requests: + # cpu: 10m + # memory: 32Mi +## Service configuration service: + ## Creating a service is enabled by default enabled: true + + ## Service type type: ClusterIP + ## IP address for type ClusterIP clusterIP: "" + ## Default service port. Sets the port of the exposed container as well (NE or kubeRBACProxy). + ## Use "servicePort" below if changing the service port only is desired. port: 9100 + ## Service port. Use this field if you wish to set a different service port + ## without changing the container port ("port" above). + servicePort: "" + ## Targeted port in the pod. Must refer to an open container port ("port" or "portName"). + ## (IntOrString) targetPort: 9100 - nodePort: + ## Name of the service port. Sets the port name of the main container (NE) as well. portName: metrics + ## Port number for service type NodePort + nodePort: null + + ## If true, node exporter will listen on all interfaces listenOnAllInterfaces: true + + ## Additional annotations and labels for the service annotations: prometheus.io/scrape: "true" + labels: {} + + ## Dual stack settings for the service + ## https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services ipDualStack: enabled: false ipFamilies: ["IPv6", "IPv4"] ipFamilyPolicy: "PreferDualStack" + + ## External traffic policy setting (Cluster, Local) externalTrafficPolicy: "" # Set a NetworkPolicy with: @@ -322,6 +346,9 @@ hostNetwork: true # Share the host process ID namespace hostPID: true +# Share the host ipc namespace +hostIPC: false + # Mount the node's root file system (/) at /host/root in the container hostRootFsMount: enabled: true @@ -359,9 +386,12 @@ podAnnotations: # Fix for very slow GKE cluster upgrades cluster-autoscaler.kubernetes.io/safe-to-evict: "true" -# Extra labels to be added to node exporter pods +# Extra labels to add to node exporter pods (can be templated) podLabels: {} +## Extra labels to attach to all resources (can be templated) +commonLabels: {} + # Annotations to be added to node exporter daemonset daemonsetAnnotations: {} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml index 55982819..2cc5daa1 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 0.25.1 +appVersion: 0.29.1 description: A Helm chart for prometheus windows-exporter home: https://github.com/prometheus-community/windows_exporter/ keywords: @@ -14,4 +14,4 @@ name: prometheus-windows-exporter sources: - https://github.com/prometheus-community/windows_exporter/ type: application -version: 0.3.1 +version: 0.7.0 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/daemonset.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/daemonset.yaml index 9ec2c6f2..8e03fa52 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/daemonset.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/daemonset.yaml @@ -75,7 +75,7 @@ spec: - name: {{ $header.name }} value: {{ $header.value }} {{- end }} - path: / + path: {{ .Values.livenessProbe.httpGet.path }} port: {{ .Values.service.port }} scheme: {{ upper .Values.livenessProbe.httpGet.scheme }} initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} @@ -90,7 +90,7 @@ spec: - name: {{ $header.name }} value: {{ $header.value }} {{- end }} - path: / + path: {{ .Values.readinessProbe.httpGet.path }} port: {{ .Values.service.port }} scheme: {{ upper .Values.readinessProbe.httpGet.scheme }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/values.yaml index 4dc17711..bb891f07 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/values.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/values.yaml @@ -350,6 +350,7 @@ livenessProbe: failureThreshold: 3 httpGet: httpHeaders: [] + path: /health scheme: http initialDelaySeconds: 0 periodSeconds: 10 @@ -362,6 +363,7 @@ readinessProbe: failureThreshold: 3 httpGet: httpHeaders: [] + path: /health scheme: http initialDelaySeconds: 0 periodSeconds: 10 diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml index fa060a32..2705e830 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml @@ -178,6 +178,9 @@ spec: {{- if .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }} clusterPushpullInterval: {{ .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }} {{- end }} +{{- if .Values.alertmanager.alertmanagerSpec.clusterLabel }} + clusterLabel: {{ .Values.alertmanager.alertmanagerSpec.clusterLabel }} +{{- end }} {{- if .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} forceEnableClusterMode: {{ .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml index 68e4f4c0..fb3ba525 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml @@ -18,6 +18,9 @@ data: {{- if .Values.grafana.deleteDatasources }} deleteDatasources: {{ tpl (toYaml .Values.grafana.deleteDatasources | indent 6) . }} +{{- end }} +{{- if .Values.grafana.prune }} + prune: {{ .Values.grafana.prune }} {{- end }} datasources: {{- $scrapeInterval := .Values.grafana.sidecar.datasources.defaultDatasourceScrapeInterval | default .Values.prometheus.prometheusSpec.scrapeInterval | default "30s" }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/_prometheus-operator-webhook.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/_prometheus-operator-webhook.tpl index f419caf5..8adafeb6 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/_prometheus-operator-webhook.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/_prometheus-operator-webhook.tpl @@ -4,3 +4,10 @@ app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus-operator app.kubernetes.io/component: prometheus-operator-webhook {{- end }} + +{{- define "kube-prometheus-stack.prometheus-operator-webhook.annotations" }} +{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }} +certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} +cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/deployment/serviceaccount.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/deployment/serviceaccount.yaml index 55511da3..15ff86e6 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/deployment/serviceaccount.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/deployment/serviceaccount.yaml @@ -8,6 +8,9 @@ metadata: labels: app: {{ template "kube-prometheus-stack.name" . }}-operator {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" . | indent 4 }} + {{- with .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.annotations }} + annotations: {{- toYaml . | nindent 4 }} + {{- end }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: {{ include "kube-prometheus-stack.imagePullSecrets" . | trim | indent 2 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/job-patch/serviceaccount.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/job-patch/serviceaccount.yaml index 8dab40c6..b89d6a63 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/job-patch/serviceaccount.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/job-patch/serviceaccount.yaml @@ -10,6 +10,9 @@ metadata: labels: app: {{ template "kube-prometheus-stack.name" $ }}-admission {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }} + {{- with .Values.prometheusOperator.admissionWebhooks.patch.serviceAccount.annotations }} + annotations: {{- toYaml . | nindent 4 }} + {{- end }} automountServiceAccountToken: {{ .Values.prometheusOperator.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/mutatingWebhookConfiguration.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/mutatingWebhookConfiguration.yaml index 91d96b38..244b25e6 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/mutatingWebhookConfiguration.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/mutatingWebhookConfiguration.yaml @@ -3,11 +3,11 @@ apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: name: {{ template "kube-prometheus-stack.fullname" . }}-admission -{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }} annotations: - certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} - cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} -{{- end }} + {{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim |nindent 4 }} + {{- with .Values.prometheusOperator.admissionWebhooks.mutatingWebhookConfiguration.annotations }} + {{- toYaml . | nindent 4}} + {{- end }} labels: app: {{ template "kube-prometheus-stack.name" $ }}-admission {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/validatingWebhookConfiguration.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/validatingWebhookConfiguration.yaml index f21a9a72..93f77405 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/validatingWebhookConfiguration.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/admission-webhooks/validatingWebhookConfiguration.yaml @@ -3,11 +3,11 @@ apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: name: {{ template "kube-prometheus-stack.fullname" . }}-admission -{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }} annotations: - certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} - cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} -{{- end }} + {{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim | nindent 4 }} + {{- with .Values.prometheusOperator.admissionWebhooks.validatingWebhookConfiguration.annotations }} + {{- toYaml . | nindent 4}} + {{- end }} labels: app: {{ template "kube-prometheus-stack.name" $ }}-admission {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml index fd11b69e..571a872a 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/clusterrole.yaml @@ -103,7 +103,10 @@ rules: - endpointslices verbs: - get + - create - list - watch + - update + - delete {{- end }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/deployment.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/deployment.yaml index 342f3882..8983ab21 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/deployment.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/deployment.yaml @@ -63,6 +63,8 @@ spec: - --kubelet-selector={{ .Values.prometheusOperator.kubeletService.selector }} {{- end }} {{- end }} + - --kubelet-endpoints={{ .Values.prometheusOperator.kubeletEndpointsEnabled }} + - --kubelet-endpointslice={{ .Values.prometheusOperator.kubeletEndpointSliceEnabled }} {{- if .Values.prometheusOperator.logFormat }} - --log-format={{ .Values.prometheusOperator.logFormat }} {{- end }} @@ -167,6 +169,30 @@ spec: {{- with .Values.prometheusOperator.extraVolumeMounts }} {{- toYaml . | nindent 12 }} {{- end }} + {{- if .Values.prometheusOperator.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: /healthz + port: {{ .Values.prometheusOperator.tls.enabled | ternary "https" "http" }} + scheme: {{ .Values.prometheusOperator.tls.enabled | ternary "HTTPS" "HTTP" }} + initialDelaySeconds: {{ .Values.prometheusOperator.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.prometheusOperator.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.prometheusOperator.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.prometheusOperator.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.prometheusOperator.readinessProbe.failureThreshold }} + {{- end }} + {{- if .Values.prometheusOperator.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: /healthz + port: {{ .Values.prometheusOperator.tls.enabled | ternary "https" "http" }} + scheme: {{ .Values.prometheusOperator.tls.enabled | ternary "HTTPS" "HTTP" }} + initialDelaySeconds: {{ .Values.prometheusOperator.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.prometheusOperator.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.prometheusOperator.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.prometheusOperator.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.prometheusOperator.livenessProbe.failureThreshold }} + {{- end }} volumes: {{- if .Values.prometheusOperator.tls.enabled }} - name: tls-secret diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/serviceaccount.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/serviceaccount.yaml index 4f84974f..0b09798a 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/serviceaccount.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus-operator/serviceaccount.yaml @@ -6,6 +6,9 @@ metadata: namespace: {{ template "kube-prometheus-stack.namespace" . }} labels: {{- include "kube-prometheus-stack.prometheus-operator.labels" . | nindent 4 }} + {{- with .Values.prometheusOperator.serviceAccount.annotations }} + annotations: {{- toYaml . | nindent 4 }} + {{- end }} automountServiceAccountToken: {{ .Values.prometheusOperator.serviceAccount.automountServiceAccountToken }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/_rules.tpl b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/_rules.tpl index 4a8213d0..82833084 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/_rules.tpl +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/_rules.tpl @@ -8,8 +8,12 @@ rules: - "config-reloaders" - "etcd" - "general.rules" + - "k8s.rules.container-cpu-limits" + - "k8s.rules.container-cpu-requests" - "k8s.rules.container-cpu-usage-seconds-total" - "k8s.rules.container-memory-cache" + - "k8s.rules.container-memory-limits" + - "k8s.rules.container-memory-requests" - "k8s.rules.container-memory-rss" - "k8s.rules.container-memory-swap" - "k8s.rules.container-memory-working-set-bytes" diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/clusterrole.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/clusterrole.yaml index eabdb24b..cee3159c 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/clusterrole.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/clusterrole.yaml @@ -17,6 +17,10 @@ rules: - endpoints - pods verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] - apiGroups: - "networking.k8s.io" resources: diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml index fd65a8e0..3d02aa92 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/prometheus.yaml @@ -470,6 +470,9 @@ spec: tracingConfig: {{ toYaml .Values.prometheus.prometheusSpec.tracingConfig | indent 4 }} {{- end }} +{{- if .Values.prometheus.prometheusSpec.serviceDiscoveryRole }} + serviceDiscoveryRole: {{ .Values.prometheus.prometheusSpec.serviceDiscoveryRole }} +{{- end }} {{- with .Values.prometheus.prometheusSpec.additionalConfig }} {{- tpl (toYaml .) $ | nindent 2 }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/serviceaccount.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/serviceaccount.yaml index e97b989b..558d84af 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/serviceaccount.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/prometheus/serviceaccount.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus app.kubernetes.io/component: prometheus {{ include "kube-prometheus-stack.labels" . | indent 4 }} -{{- if .Values.prometheus.serviceAccount.annotations }} +{{- with .Values.prometheus.serviceAccount.annotations }} annotations: -{{ toYaml .Values.prometheus.serviceAccount.annotations | indent 4 }} +{{ tpl (toYaml .) $ | indent 4 }} {{- end }} automountServiceAccountToken: {{ .Values.prometheus.serviceAccount.automountServiceAccountToken }} {{- if .Values.global.imagePullSecrets }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml index 123dc245..0c6439f3 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/templates/thanos-ruler/ruler.yaml @@ -193,6 +193,10 @@ spec: {{- with .Values.thanosRuler.thanosRulerSpec.additionalConfig }} {{- tpl (toYaml .) $ | nindent 2 }} {{- end }} +{{- if .Values.thanosRuler.thanosRulerSpec.web }} + web: +{{ toYaml .Values.thanosRuler.thanosRulerSpec.web | indent 4 }} +{{- end }} {{- with .Values.thanosRuler.thanosRulerSpec.additionalConfigString }} {{- tpl . $ | nindent 2 }} {{- end }} diff --git a/charts/kubezero-metrics/charts/kube-prometheus-stack/values.yaml b/charts/kubezero-metrics/charts/kube-prometheus-stack/values.yaml index efab16ad..d76925fe 100644 --- a/charts/kubezero-metrics/charts/kube-prometheus-stack/values.yaml +++ b/charts/kubezero-metrics/charts/kube-prometheus-stack/values.yaml @@ -174,6 +174,10 @@ defaultRules: ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules. runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks" + node: + fsSelector: 'fstype!=""' + # fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"' + ## Disabled PrometheusRule alerts disabled: {} # KubeAPIDown: true @@ -763,7 +767,7 @@ alertmanager: # resources: # requests: # storage: 50Gi - # selector: {} + # selector: {} ## The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false @@ -919,6 +923,9 @@ alertmanager: ## Needs to be specified as GoDuration, a time duration that can be parsed by Go’s time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s) clusterPushpullInterval: "" + ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster. + clusterLabel: "" + ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica. ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each. forceEnableClusterMode: false @@ -1116,7 +1123,8 @@ grafana: # - name: prometheus-sample # access: proxy # basicAuth: true - # basicAuthPassword: pass + # secureJsonData: + # basicAuthPassword: pass # basicAuthUser: daco # editable: false # jsonData: @@ -1126,6 +1134,11 @@ grafana: # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090 # version: 1 + # Flag to mark provisioned data sources for deletion if they are no longer configured. + # It takes no effect if data sources are already listed in the deleteDatasources section. + # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-config-file + prune: false + ## Passed to grafana subchart and used by servicemonitor below ## service: @@ -2127,6 +2140,9 @@ prometheus-node-exporter: enabled: false ipFamilies: ["IPv6", "IPv4"] ipFamilyPolicy: "PreferDualStack" + labels: + jobLabel: node-exporter + prometheus: monitor: enabled: true @@ -2215,6 +2231,25 @@ prometheusOperator: # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules. internalPort: 10250 + ## Liveness probe for the prometheusOperator deployment + ## + livenessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + ## Readiness probe for the prometheusOperator deployment + ## + readinessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted ## rules from making their way into prometheus and potentially preventing the container from starting admissionWebhooks: @@ -2238,6 +2273,13 @@ prometheusOperator: namespaceSelector: {} objectSelector: {} + mutatingWebhookConfiguration: + annotations: {} + # argocd.argoproj.io/hook: PreSync + + validatingWebhookConfiguration: + annotations: {} + # argocd.argoproj.io/hook: PreSync deployment: enabled: false @@ -2272,6 +2314,7 @@ prometheusOperator: ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ## serviceAccount: + annotations: {} automountServiceAccountToken: false create: true name: "" @@ -2493,6 +2536,7 @@ prometheusOperator: ## serviceAccount: create: true + annotations: {} automountServiceAccountToken: true # Security context for create job container @@ -2574,6 +2618,7 @@ prometheusOperator: create: true name: "" automountServiceAccountToken: true + annotations: {} ## Configuration for Prometheus operator service ## @@ -2654,6 +2699,11 @@ prometheusOperator: ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default name: "" + ## Create Endpoints objects for kubelet targets. + kubeletEndpointsEnabled: true + ## Create EndpointSlice objects for kubelet targets. + kubeletEndpointSliceEnabled: false + ## Create a servicemonitor for the operator ## serviceMonitor: @@ -2868,7 +2918,7 @@ prometheusOperator: thanosImage: registry: quay.io repository: thanos/thanos - tag: v0.35.1 + tag: v0.36.1 sha: "" ## Set a Label Selector to filter watched prometheus and prometheusAgent @@ -3458,7 +3508,7 @@ prometheus: image: registry: quay.io repository: prometheus/prometheus - tag: v2.53.1 + tag: v2.54.1 sha: "" ## Tolerations for use with node taints @@ -4085,6 +4135,10 @@ prometheus: ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheustracingconfig tracingConfig: {} + ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints. + ## If set, the value should be either “Endpoints” or “EndpointSlice”. If unset, the operator assumes the “Endpoints” role. + serviceDiscoveryRole: "" + ## Additional configuration which is not covered by the properties above. (passed through tpl) additionalConfig: {} @@ -4446,7 +4500,7 @@ thanosRuler: image: registry: quay.io repository: thanos/thanos - tag: v0.35.1 + tag: v0.36.1 sha: "" ## Namespaces to be selected for PrometheusRules discovery. @@ -4521,7 +4575,7 @@ thanosRuler: existingSecret: {} # name: "" # key: "" - # will render render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set + # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set # https://thanos.io/tip/components/rule.md/#alertmanager secret: {} # alertmanagers: @@ -4713,6 +4767,10 @@ thanosRuler: ## portName: "web" + ## WebTLSConfig defines the TLS parameters for HTTPS + ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosrulerwebspec + web: {} + ## Additional configuration which is not covered by the properties above. (passed through tpl) additionalConfig: {} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json b/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json index 375320c3..178c8ea5 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -17,7 +30,7 @@ "options": { "content": "The SLO (service level objective) and other metrics displayed on this dashboard are for informational purposes only." }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "title": "Notice", "type": "text" }, @@ -41,7 +54,7 @@ }, "id": 2, "interval": "1m", - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -87,7 +100,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -121,7 +134,7 @@ }, "id": 4, "interval": "1m", - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -219,7 +232,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -263,7 +276,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -306,7 +319,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -340,7 +353,7 @@ }, "id": 8, "interval": "1m", - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -438,7 +451,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -482,7 +495,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -525,7 +538,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -568,7 +581,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -611,7 +624,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -657,7 +670,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -699,7 +712,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -742,7 +755,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -784,7 +797,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json b/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json index 6a63c937..c599d4f1 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -33,14 +46,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -79,14 +92,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -150,14 +163,14 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -166,7 +179,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -175,7 +188,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "avg by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "avg by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -184,7 +197,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "avg by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "avg by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -193,7 +206,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -202,7 +215,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -211,7 +224,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -220,7 +233,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true } @@ -315,14 +328,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "avg by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "avg by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -361,14 +374,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "avg by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "avg by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -407,14 +420,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -453,14 +466,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -499,14 +512,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -545,14 +558,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -591,14 +604,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -637,14 +650,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -683,14 +696,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (instance) (rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_OutSegs{cluster=\"$cluster\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (instance) (\n rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_OutSegs{cluster=\"$cluster\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -729,14 +742,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (instance) (rate(node_netstat_TcpExt_TCPSynRetrans{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (instance) (\n rate(node_netstat_TcpExt_TCPSynRetrans{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], diff --git a/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json b/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json index 11f8c568..7733b241 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -73,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -124,7 +137,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -175,7 +188,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -226,7 +239,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -301,7 +314,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -352,7 +365,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -403,7 +416,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -454,7 +467,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -505,7 +518,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json index 98ed42e7..fcc372d1 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -8,7 +21,7 @@ }, "fieldConfig": { "defaults": { - "unit": "none" + "unit": "percentunit" } }, "gridPos": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -57,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -92,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -127,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -162,7 +175,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -197,7 +210,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -247,7 +260,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -306,7 +319,7 @@ "y": 12 }, "id": 8, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -463,7 +476,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -558,7 +571,7 @@ "y": 24 }, "id": 10, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -735,7 +748,7 @@ "y": 30 }, "id": 11, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -879,7 +892,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -930,7 +943,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -981,7 +994,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1032,7 +1045,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1083,7 +1096,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1134,7 +1147,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1185,7 +1198,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1236,7 +1249,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1287,7 +1300,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1338,7 +1351,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1409,7 +1422,7 @@ "y": 96 }, "id": 22, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json index 3a17852e..4feb6a35 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -57,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -92,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -127,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -229,7 +242,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -244,7 +257,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"}))", "legendFormat": "quota - requests" }, { @@ -252,7 +265,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"}))", "legendFormat": "quota - limits" } ], @@ -304,7 +317,7 @@ "y": 14 }, "id": 6, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -487,7 +500,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -502,7 +515,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"}))", "legendFormat": "quota - requests" }, { @@ -510,7 +523,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"}))", "legendFormat": "quota - limits" } ], @@ -565,7 +578,7 @@ "y": 28 }, "id": 8, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -755,7 +768,7 @@ "y": 35 }, "id": 9, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -899,7 +912,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -950,7 +963,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1001,7 +1014,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1052,7 +1065,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1103,7 +1116,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1154,7 +1167,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1205,7 +1218,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1256,7 +1269,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1327,7 +1340,7 @@ "y": 70 }, "id": 18, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json index 45462f61..1929c058 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -81,14 +94,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"})", + "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", job=\"kube-state-metrics\", node=~\"$node\", resource=\"cpu\"})", "legendFormat": "max capacity" }, { @@ -148,7 +161,7 @@ "y": 6 }, "id": 2, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -310,14 +323,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"})", + "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", job=\"kube-state-metrics\", node=~\"$node\", resource=\"memory\"})", "legendFormat": "max capacity" }, { @@ -380,7 +393,7 @@ "y": 18 }, "id": 4, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json index c0f1670b..97763f5b 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -89,7 +102,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -195,7 +208,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -237,7 +250,7 @@ "y": 14 }, "id": 3, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -420,7 +433,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -481,7 +494,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -651,7 +664,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -702,7 +715,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -753,7 +766,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -804,7 +817,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -855,7 +868,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -906,7 +919,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -957,7 +970,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1016,7 +1029,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1075,7 +1088,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1126,7 +1139,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1180,7 +1193,7 @@ "y": 70 }, "id": 16, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json index c2b2d8ec..b737e751 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -37,7 +50,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -96,7 +109,7 @@ "y": 7 }, "id": 2, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -227,7 +240,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -289,7 +302,7 @@ "y": 21 }, "id": 4, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -440,7 +453,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -584,7 +597,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -635,7 +648,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -686,7 +699,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -737,7 +750,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -788,7 +801,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -839,7 +852,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -890,7 +903,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -941,7 +954,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json index ae320ff2..9d731a0f 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -89,7 +102,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -104,7 +117,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"requests.cpu|cpu\"}))", "legendFormat": "quota - requests" }, { @@ -112,7 +125,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"limits.cpu\"}))", "legendFormat": "quota - limits" } ], @@ -176,7 +189,7 @@ "y": 7 }, "id": 2, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -384,7 +397,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -399,7 +412,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"requests.memory|memory\"}))", "legendFormat": "quota - requests" }, { @@ -407,7 +420,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"})", + "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"limits.memory\"}))", "legendFormat": "quota - limits" } ], @@ -474,7 +487,7 @@ "y": 21 }, "id": 4, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -650,7 +663,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -794,7 +807,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -845,7 +858,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -896,7 +909,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -947,7 +960,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -998,7 +1011,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1049,7 +1062,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1100,7 +1113,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1151,7 +1164,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json b/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json index e7fb4bf2..311b19fb 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -57,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -92,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -127,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -162,7 +175,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -197,7 +210,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -248,7 +261,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -299,7 +312,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -350,7 +363,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -401,7 +414,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -460,7 +473,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -519,7 +532,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -570,7 +583,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -621,7 +634,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -672,7 +685,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -723,7 +736,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -774,7 +787,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -825,7 +838,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -876,7 +889,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -927,7 +940,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1002,7 +1015,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1053,7 +1066,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1104,7 +1117,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -1155,7 +1168,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json index e9edb988..be4d1a71 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -40,14 +53,14 @@ "y": 0 }, "id": 1, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -93,14 +106,14 @@ "y": 0 }, "id": 2, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -164,14 +177,14 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -180,7 +193,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -189,7 +202,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -198,7 +211,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -207,7 +220,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true }, @@ -216,7 +229,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "format": "table", "instant": true } @@ -303,14 +316,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -349,14 +362,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -395,14 +408,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -441,14 +454,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -487,14 +500,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", + "expr": "sum by (pod) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], @@ -533,14 +546,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", + "expr": "sum by (pod) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n", "legendFormat": "__auto" } ], diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json index 9f3e575b..c12b1274 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -26,14 +39,14 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -65,14 +78,14 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -136,7 +149,7 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -322,14 +335,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -373,14 +386,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -424,14 +437,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(avg(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(avg(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -475,14 +488,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(avg(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(avg(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -526,14 +539,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -577,14 +590,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -628,14 +641,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], @@ -679,14 +692,14 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "sort_desc(sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", + "expr": "sort_desc(sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "legendFormat": "__auto" } ], diff --git a/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json b/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json index d86c7a51..f1f71a7c 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -37,7 +50,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -99,7 +112,7 @@ }, "id": 2, "interval": "1m", - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -149,7 +162,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -211,7 +224,7 @@ }, "id": 4, "interval": "1m", - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json index f6d58b5b..13c14cff 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -40,7 +53,7 @@ "y": 0 }, "id": 1, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -93,7 +106,7 @@ "y": 0 }, "id": 2, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -139,7 +152,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -185,7 +198,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -231,7 +244,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -277,7 +290,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -323,7 +336,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -369,7 +382,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/proxy.json b/charts/kubezero-metrics/jsonnet/dashboards/proxy.json index 02706ba3..bdfd0544 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/proxy.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/proxy.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -73,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -124,7 +137,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -175,7 +188,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -226,7 +239,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -277,7 +290,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -352,7 +365,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -403,7 +416,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -454,7 +467,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -505,7 +518,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -556,7 +569,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json b/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json index 3d0fb5f4..03423a36 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -22,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -73,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -148,7 +161,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -223,7 +236,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -298,7 +311,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -349,7 +362,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -400,7 +413,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -451,7 +464,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -502,7 +515,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json index e5030424..dd983597 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json @@ -1,5 +1,18 @@ { "editable": false, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], "panels": [ { "datasource": { @@ -26,7 +39,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -65,7 +78,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -104,7 +117,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -143,7 +156,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -194,7 +207,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -245,7 +258,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -296,7 +309,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -347,7 +360,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -398,7 +411,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { @@ -449,7 +462,7 @@ "mode": "single" } }, - "pluginVersion": "v11.0.0", + "pluginVersion": "v11.1.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json index f923a5c2..b6b17a66 100644 --- a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json +++ b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json @@ -18,7 +18,7 @@ "subdir": "contrib/mixin" } }, - "version": "010d462c0ff03a70f5c5fd32efbb76ad4c1e7c81", + "version": "55de68d18c63fde8747f2cd9f7c2ff242346f756", "sum": "IXI3LQIT9NmTPJAk8WLUJd5+qZfcGpeNCyWIK7oEpws=" }, { @@ -58,8 +58,8 @@ "subdir": "gen/grafonnet-latest" } }, - "version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", - "sum": "eyuJ0jOXeA4MrobbNgU4/v5a7ASDHslHZ0eS6hDdWoI=" + "version": "1ce5aec95ce32336fe47c8881361847c475b5254", + "sum": "64fMUPI3frXGj4X1FqFd1t7r04w3CUSmXaDcJ23EYbQ=" }, { "source": { @@ -68,18 +68,18 @@ "subdir": "gen/grafonnet-v10.0.0" } }, - "version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", + "version": "1ce5aec95ce32336fe47c8881361847c475b5254", "sum": "xdcrJPJlpkq4+5LpGwN4tPAuheNNLXZjE6tDcyvFjr0=" }, { "source": { "git": { "remote": "https://github.com/grafana/grafonnet.git", - "subdir": "gen/grafonnet-v11.0.0" + "subdir": "gen/grafonnet-v11.1.0" } }, - "version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", - "sum": "Fuo+qTZZzF+sHDBWX/8fkPsUmwW6qhH8hRVz45HznfI=" + "version": "1ce5aec95ce32336fe47c8881361847c475b5254", + "sum": "41w7p/rwrNsITqNHMXtGSJAfAyKmnflg6rFhKBduUxM=" }, { "source": { @@ -88,8 +88,8 @@ "subdir": "grafana-builder" } }, - "version": "02db06f540086fa3f67d487bd01e1b314853fb8f", - "sum": "B49EzIY2WZsFxNMJcgRxE/gcZ9ltnS8pkOOV6Q5qioc=" + "version": "3805ed5082bb7db66cd75badb57a673c965aa24c", + "sum": "yxqWcq/N3E/a/XreeU6EuE6X7kYPnG0AspAQFKOjASo=" }, { "source": { @@ -118,8 +118,8 @@ "subdir": "" } }, - "version": "3dfa72d1d1ab31a686b1f52ec28bbf77c972bd23", - "sum": "7ufhpvzoDqAYLrfAsGkTAIRmu2yWQkmHukTE//jOsJU=" + "version": "0348e09edc3961a29a55f199d1bf0060c847a608", + "sum": "kTZuZcE+pNw8ZVZECKxrZG4F9BS+ydWMcgACE9oUrRc=" }, { "source": { @@ -128,8 +128,8 @@ "subdir": "jsonnet/kube-state-metrics" } }, - "version": "38c268909335d243fc260ed4d6ce713db3265464", - "sum": "pvInhJNQVDOcC3NGWRMKRIP954mAvLXCQpTlafIg7fA=" + "version": "9652c29fe6ac08a1cb76112061f7d1010319d634", + "sum": "lO7jUSzAIy8Yk9pOWJIWgPRhubkWzVh56W6wtYfbVH4=" }, { "source": { @@ -138,7 +138,7 @@ "subdir": "jsonnet/kube-state-metrics-mixin" } }, - "version": "38c268909335d243fc260ed4d6ce713db3265464", + "version": "9652c29fe6ac08a1cb76112061f7d1010319d634", "sum": "qclI7LwucTjBef3PkGBkKxF0mfZPbHnn4rlNWKGtR4c=" }, { @@ -148,8 +148,8 @@ "subdir": "jsonnet/kube-prometheus" } }, - "version": "defa2bd1e242519c62a5c2b3b786b1caa6d906d4", - "sum": "INKeZ+QIIPImq+TrfHT8CpYdoRzzxRk0txG07XlOo/Q=" + "version": "a030693b39a019a7475f6fb918abd37cb6d9d1ba", + "sum": "NKlS33HxtOMyC2GWUlb9W2F4WBLMqBJMWNFRxVIMA/Y=" }, { "source": { @@ -158,7 +158,7 @@ "subdir": "jsonnet/mixin" } }, - "version": "609424db53853b992277b7a9a0e5cf59f4cc24f3", + "version": "94031224b1c186ff6671ec9f447716f748ac9d31", "sum": "gi+knjdxs2T715iIQIntrimbHRgHnpM8IFBJDD1gYfs=", "name": "prometheus-operator-mixin" }, @@ -169,8 +169,8 @@ "subdir": "jsonnet/prometheus-operator" } }, - "version": "609424db53853b992277b7a9a0e5cf59f4cc24f3", - "sum": "z2/5LjQpWC7snhT+n/mtQqoy5986uI95sTqcKQziwGU=" + "version": "94031224b1c186ff6671ec9f447716f748ac9d31", + "sum": "5G3bgQK3WFueFwjZDcTaI16cyf19rqxK+H1oGsiIgx0=" }, { "source": { @@ -179,7 +179,7 @@ "subdir": "doc/alertmanager-mixin" } }, - "version": "eb8369ec510d76f63901379a8437c4b55885d6c5", + "version": "4fcb18ee41ecaff4ee1816ad363dc63fdf3583b9", "sum": "IpF46ZXsm+0wJJAPtAre8+yxTNZA57mBqGpBP/r7/kw=", "name": "alertmanager" }, @@ -190,8 +190,8 @@ "subdir": "docs/node-mixin" } }, - "version": "b9d0932179a0c5b3a8863f3d6cdafe8584cedc8e", - "sum": "rhUvbqviGjQ2mwsRhHKMN0TiS3YvnYpUXHew3XlQ+Wg=" + "version": "e6a9cfbdcdaa21bf9676c6cd37bef8160227f423", + "sum": "cQCW+1N0Xae5yXecCWDK2oAlN0luBS/5GrwBYSlaFms=" }, { "source": { @@ -200,7 +200,7 @@ "subdir": "documentation/prometheus-mixin" } }, - "version": "ac85bd47e1cfa0d63520e4c0b4e26900c42c326b", + "version": "6b36a5592a8f7e51f9801e5c8944ad9ca185e5cc", "sum": "dYLcLzGH4yF3qB7OGC/7z4nqeTNjv42L7Q3BENU8XJI=", "name": "prometheus" }, @@ -208,11 +208,11 @@ "source": { "git": { "remote": "https://github.com/pyrra-dev/pyrra.git", - "subdir": "config/crd/bases" + "subdir": "jsonnet/controller-gen" } }, - "version": "551856d42dff02ec38c5b0ea6a2d99c4cb127e82", - "sum": "bY/Pcrrbynguq8/HaI88cQ3B2hLv/xc+76QILY7IL+g=", + "version": "d723f4d1a066dd657e9d09c46a158519dda0faa8", + "sum": "cxAPQovFkM16zNB5/94O+sk/n3SETk6ao6Oas2Sa6RE=", "name": "pyrra" }, { @@ -222,8 +222,8 @@ "subdir": "mixin" } }, - "version": "35c0dbec856f97683a846e9c53f83156a3a44ff3", - "sum": "HhSSbGGCNHCMy1ee5jElYDm0yS9Vesa7QB2/SHKdjsY=", + "version": "7d95913c50e8999bce12089b582d33896b8475e1", + "sum": "ieCD4eMgGbOlrI8GmckGPHBGQDcLasE1rULYq56W/bs=", "name": "thanos-mixin" } ], diff --git a/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule index 865227c3..e04a80b5 100644 --- a/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "exporter", "app.kubernetes.io/name": "kube-state-metrics", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "2.12.0", + "app.kubernetes.io/version": "2.13.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule index 6ec896c8..6c01db1d 100644 --- a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule @@ -114,7 +114,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout", "summary": "StatefulSet update has not been rolled out." }, - "expr": "(\n max by(namespace, statefulset) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n", + "expr": "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n", "for": "15m", "labels": { "severity": "warning" @@ -445,7 +445,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, - "expr": "sum(apiserver_request:burnrate1h) > (14.40 * 0.01000)\nand\nsum(apiserver_request:burnrate5m) > (14.40 * 0.01000)\n", + "expr": "sum by(cluster) (apiserver_request:burnrate1h) > (14.40 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate5m) > (14.40 * 0.01000)\n", "for": "2m", "labels": { "long": "1h", @@ -460,7 +460,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, - "expr": "sum(apiserver_request:burnrate6h) > (6.00 * 0.01000)\nand\nsum(apiserver_request:burnrate30m) > (6.00 * 0.01000)\n", + "expr": "sum by(cluster) (apiserver_request:burnrate6h) > (6.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate30m) > (6.00 * 0.01000)\n", "for": "15m", "labels": { "long": "6h", @@ -475,7 +475,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, - "expr": "sum(apiserver_request:burnrate1d) > (3.00 * 0.01000)\nand\nsum(apiserver_request:burnrate2h) > (3.00 * 0.01000)\n", + "expr": "sum by(cluster) (apiserver_request:burnrate1d) > (3.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate2h) > (3.00 * 0.01000)\n", "for": "1h", "labels": { "long": "1d", @@ -490,7 +490,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, - "expr": "sum(apiserver_request:burnrate3d) > (1.00 * 0.01000)\nand\nsum(apiserver_request:burnrate6h) > (1.00 * 0.01000)\n", + "expr": "sum by(cluster) (apiserver_request:burnrate3d) > (1.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate6h) > (1.00 * 0.01000)\n", "for": "3h", "labels": { "long": "3d", @@ -510,7 +510,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration", "summary": "Client certificate is about to expire." }, - "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 604800\n", + "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 604800\n", "for": "5m", "labels": { "severity": "warning" @@ -523,7 +523,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration", "summary": "Client certificate is about to expire." }, - "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 86400\n", + "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 86400\n", "for": "5m", "labels": { "severity": "critical" @@ -574,7 +574,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests", "summary": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests." }, - "expr": "sum(rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) / ( sum(rate(apiserver_request_total{job=\"apiserver\"}[10m])) + sum(rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) ) > 0.20\n", + "expr": "sum by(cluster) (rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) / ( sum by(cluster) (rate(apiserver_request_total{job=\"apiserver\"}[10m])) + sum by(cluster) (rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) ) > 0.20\n", "for": "5m", "labels": { "severity": "warning" @@ -810,14 +810,6 @@ }, "record": "code:apiserver_request_total:increase30d" }, - { - "expr": "sum by (cluster, verb, scope) (increase(apiserver_request_sli_duration_seconds_count{job=\"apiserver\"}[1h]))\n", - "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h" - }, - { - "expr": "sum by (cluster, verb, scope) (avg_over_time(cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h[30d]) * 24 * 30)\n", - "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d" - }, { "expr": "sum by (cluster, verb, scope, le) (increase(apiserver_request_sli_duration_seconds_bucket[1h]))\n", "record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h" @@ -826,6 +818,14 @@ "expr": "sum by (cluster, verb, scope, le) (avg_over_time(cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h[30d]) * 24 * 30)\n", "record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d" }, + { + "expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h{le=\"+Inf\"})\n", + "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h" + }, + { + "expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le=\"+Inf\"} * 24 * 30)\n", + "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d" + }, { "expr": "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n", "labels": { @@ -1049,7 +1049,7 @@ ] }, { - "name": "k8s.rules.container_resource", + "name": "k8s.rules.container_memory_requests", "rules": [ { "expr": "kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", @@ -1058,7 +1058,12 @@ { "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "record": "namespace_memory:kube_pod_container_resource_requests:sum" - }, + } + ] + }, + { + "name": "k8s.rules.container_cpu_requests", + "rules": [ { "expr": "kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", "record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests" @@ -1066,7 +1071,12 @@ { "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "record": "namespace_cpu:kube_pod_container_resource_requests:sum" - }, + } + ] + }, + { + "name": "k8s.rules.container_memory_limits", + "rules": [ { "expr": "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", "record": "cluster:namespace:pod_memory:active:kube_pod_container_resource_limits" @@ -1074,7 +1084,12 @@ { "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "record": "namespace_memory:kube_pod_container_resource_limits:sum" - }, + } + ] + }, + { + "name": "k8s.rules.container_cpu_limits", + "rules": [ { "expr": "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n )\n", "record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits" diff --git a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule index 9a92d0f8..4f162024 100644 --- a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "exporter", "app.kubernetes.io/name": "node-exporter", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "1.8.1", + "app.kubernetes.io/version": "1.8.2", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule index 1832793a..79828e43 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "controller", "app.kubernetes.io/name": "prometheus-operator", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "0.75.1", + "app.kubernetes.io/version": "0.77.1", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule index 2f69e837..63223d7d 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule @@ -7,7 +7,7 @@ "app.kubernetes.io/instance": "k8s", "app.kubernetes.io/name": "prometheus", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "2.53.0", + "app.kubernetes.io/version": "2.54.1", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml index f7f6f18a..a3373031 100644 --- a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml +++ b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml @@ -16,36 +16,36 @@ binaryData: node.json.gz: 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 apiserver.json.gz: - H4sIAAAAAAAC/+1cbW/bNhD+nl9BaB1gD17qtzhxgG3IknQrkLVZm24f1sKgpLPNlRJVkkriZd5v35GSbNmyZ6exHWd1gKQlKb49fJ6701ny3R4hDvhMU5eDc0y6lCuomMqIhsAVVv2BJULu7F+s96mmSsTSM5c7l1IEoPsQK6cyugKUJ1mkmQjNJVd9IG8vXpOSAnnNPCAcroET4f4JnmbXUCY09InAQSTBsSTzFPGZijgdANaHRPcZ1lDVdwWVPqESSFdIwkL8G1AzDeUkimUkFCjswAf748X0JPMvhdlHtgOs7GOxXhmXb0y5mau4xYpqrjww5bQ4HI3NfKyujYrCbnlqKk+EGkL9aEAUFh3xuMfC30Cq9Hyua7X96n51DJlm2nLBeSU0LjPXMIhsvYZbnQycDvv55PhZ3JCAhgMSAXYKNRFdIuFTDEorUnIRDCxS3yJzI5lGkFhIGlWEYaBIn14DcQFCbFc3IBEmFXseKNWNOR/YXl2qNIFQxL3+D+NldBlw/1SEXdabPC8fujTmevIUbb3HAmoF0ajkG+KQ2dNNN2CLo/ZhAf65fDyc4uPRAjrWZ9OxPi4i8eQ15WZxtcC5DwGo7IEeaz9/xMsds70KbiNp2mnEDONBdtKTPabXlHHqMs70oFH177DN/e69Qzl/71SIx2OFS8eKZ+l/3zvDIqYfioQ9yY1LSjhymXxP2u39arX6dZHGStOV0jj2+gSkREW6sY8AElQrh64mXIiPLOwRivSOJanut9vVr0keBNKLqaR4YKAeQlIP0RLBVK0diPPXEfVwJmOxqtVc87DyqDSvtaZ4frQczxsLeT7THHPoQehP40bVVer/tIxhYt9ofT0IUgsuWa+vJ0mu+uLmIhvU9N6bAayjheCaRdPzBsJPmIjswOn/A8+NixZJQr4hpZVol3ybcB5/ypOzJcfxwrovM6uVT6KepQR/bq7/MVHbQr1rFgBuhoFaq/NCbzX2YBcv315Vfjq/+mLcVmuB22rPlnPzCbstc+QP81tvDGmKzmv9LsuQdy5jkRpEAQawPvEFBp9ARpAoYhTnDoiHFmwjHqsy2Y5AeManFnrmrGpozAp3JpqHcz1fJghEIlLOTCsucOeoA5ikGJleO9oyD2P4WUuzXHfcwRu0e7eRU5luH/ss53l9f/85m1r9FAqRFHhImhVWVFxVbnpPcCELc2Mzqi62yH110DppNX90pi4ZTpQ/zINyPXA0HhGOF/XT0+rpVsHRfEQ4GvXD5ll7q+A4eEQ4zqv1F83mPeDYm65dgZ9tLednD3Zh81qDBhUHxi2WjF8sJ/9g+JD0Py5EFB0tNOXHkmo4CJYKJxbEz3d31iOT4T3ijrcXLzFAf5MGANsWNueCEJPvkqBjGWLAfMN0ereNlx/c3pYfEoUELJwMVTcYINfqyym3tVPuRpSbqfVh6jVdv/vnvYN+ab6WyXOy2lk/12Zks32G3bB34Bu1Gok1UCa7Zu5J2m00BKlIGU8y4gYOk3CzduRva0co6bFrvOPOtvoQc5GZBrUeg3C0nEE43BmEtRqEVECdTzG1zJohRcVZx4+l/eilk/LyuM/wlrYnaTDquVyiYI0iPUvX+EjO3X5wk/Pul69RlZfv8Pfk6vTnv8/OL86vzncZslTutdZsvR894RSZZcDDcmS/WxI9VpJsSQrvUma7lNkuZbZLme1SZk8wZTbP8bZ3gfa258z+O75YbdIsCUS2Imt2/6jkC8mhzZNyrbrT8lPIomV63nAa7aFm5L636HlTspWJNAOITaTNsSxPOKs210TUdibiieXVFmQX1qnadWbWVuqCRbQaXU242pnPJTfm6Kq+jbqy7zv8f3xvyfiz0o2QH1FIMXSo76vE0939KexjmpnWjFxYqDQNPethn2WFuTr641mnY4bvZMf3oVy2TjfrWSEhDWChl8wuHw7J3Z3psazscFfkV7MtcuL75A0uZetVh1yTej26K8S8c4XX2Alv48LzIdL9/5XmzsyOtl9wKxHbwnfBGvNeBmtuSGse5V4xKedwqvQroV/FfCKJ/2EXeGJ7MYAsmdcSKmSGflMVT8WgHTf2PoLemK4rhEN5E+K+wLWE3mAr5J1J2R1oUBt5la5xOEfNu6cl16vISArzmb5J0zAft98JIBBy0LFHP0Nl9xPZ8rpZSi6/2LV9QSHn0YI38+bKZveo4nplY31Vph0vikfuad6d3oOd04qldHr5jsSK9mCrHM76lFNrLSud3UN965VOT3R6QopYs3D7PMxPo5UtoYu9dAhHQhf9p6Gh06gmPR3l9SGgY1wb9jNsBLM3RtL5GLsgQ0ijrGQwDQFSQ+cfE3I4xs05/PNfbhFLmXBo4kgUcPA0+LOIZ7874ngkxkkERw8IZK0zWddnll75KI5TF6xSzpANJKVDrt1ExXbcMVlyrRjsy0EajxTZgwD3wKjYyVdm55IbcZrdedOzmKTZtuqztpVSbtaWZjSN9mP7dyyqqhRHRb4PR8QuT+44o1R+NcqYx9wXnuRQSGZcDQD5c2UhLs+HE84LXBoBkIns8xCYo+zxDd0qgdnLnmAZJmJjdgepzLrSPtXnhOLm21qWaUETm9Y5E93+EqEd/93VqZNWZt+BcfmSJJtLGuLkoZxqG7wjSmvQbrf8Vrfr+a2j2qHr0m636bs119kb/gvX2Oy/DEgAAA== + H4sIAAAAAAAC/+1ca3PbthL97l+BYdMZqaM4elm2PNN7x7GdNlPfxDdxej80Hg1IQhJqkGAB0LKuov72LkBS4kOq5OhhuZFnLBtY4rU4Z3e5IjE6QMgiLlXYZsQ6RV3MJKnoSkb9Owk1v0EBoZH5hGosLwQPXD7wQaZEaC42Euo7LHTJr1jIvOiOkOCGeiRfr3BvOkR0ZWgT4RNFpBVX3qauFj2iXjPs36VnGsmoMvO3fpl2MBUOAyNzsezbHAs37nx8EHdvBdgnbMZqXayw5KFwTPtrwT2i+iRM9e0S6QgaKMq1QqybPkEfr96jkiTinjoEMXJPGOL278RR9J6UEfZdxKETgaAvQR2JXCoDhocE6n2k+hRqkokiLAjqcoGoD58e1sNghoJQBFwSCQ3Y8HA6mZ6g7jXX6xhNVdqHYr0yLQ90uZmqeICKaqo81OW4OJ5urwvVtUmRmyXnhnK4r4ivnkwRhUkHLOxR/1ciZLw/97XaYe2wahWB844rmGYRNIo8qBgulRXB8TMfIA/7QxQQaOQrxLtIkD9CIpVEJRuUAUXsGs0MBFWgJOqjRhXUMJSoj+8JsgnxQS4HRICaZOg4RMpuyNjQtOpiqRDxedjr/3s6jS4lzD3nfpf2svvlki4Omcruoql3qIcNIRqVtCD0qdndeAGmOJGPC+qfi8fjHB5PFsCxPhuO9ZTxUYAzzPTkap71GAAYq5I1Q1llLNpmcxV5CISW44BqxBPRiXf2FN9jyrBNGVXDRtUdgcz+8bOFGftsVRDYTAlTh4oX8b+frXFRp7dFwJ6l+kUl6LmM/oXa7cNqtfp9EcZS4bXCOHT6iAgBjLRDFxSIgK2MdBVinN9Rv4cwwDsUqHrYble/R2kloF6IBYYNI3IVkDqgLe7lak1HjL0PsAMjaYtVrabE48qTwrzWyuH8ZDmcNxbifKY5ZqRHfDevNyxvYmef9sUxW7BDvNiCC9rrqyzIZZ8PrpJOdeuDGYq1FOdM0SA/rsfdCImADhj+b/S5ddICSNAPqLQW7qKXEebhp5wdLdqON8Z96VENfSL2LEX4S33964htC/muINyCxdAkkNqQ8wJvNfVgV28/3lR+urz5ZtxWa4Hbas+mc/MZuy295av5rQ8aNEXntXmXpcE7F7EADSQJBLAucjkEnwRNVCKRZpw9RA5YsK14rEpWDopwtE8ttExZVV+bFWZlxOO5ni8hBGgikNZMK85h5cADkoUYys8dbJkDMfysqRmsW/bwA9i9h8Cq5OVTn2W9qh8evqK52ee0EMB9JxGKFmZUnFVqeIczLgpjgxhYFxrNfXfUOms1X1u5S8aZ8u08VW5GHY0nVMeb+vl59Xyn1NF8QnU06sfNi/ZOqePoCdVxWa2/aTYfoY6DfO0a/GxrOT97tA+bNxo0yNDTbrGk/WI5+gPhQ9T+tBBRdBRXmJ0KrMiRt1Q4sSB+Ho2MR0bjR8QdH6/eQoD+IQ4Adi1sTgUhOt8liAqFDwHzgKr4bhsuP3p4KK8ShXjUz4aqWwyQa/XlmNvaM3crzE3Yuhp7ddMf//xsgV+az2X0Cq131K+1GcloX2E3zB34Vq1GZA2kzq7pe5J2GwxBTFLKooy4VodOuBk78sXYEYx69B7uuJOlrmIuEtMgN2MQTpYzCMd7g7BRgxATqPNHiA2yZlBRMtpxQ2G+eunEuDztU7il7QnsTVoulyjYIEkv4jk+kXM3X9ykvPv1e2Dl9Sf4Pbs5//nLxeXV5c3lPkMW073Wms33k2ecIjMIWC1H9j8DoqdKki0J4X3KbJ8y26fM9imzfcrsGabM5jne9j7Q3vWc2d/HF+tNmkWByE5kzR4flXwjObR5VK5V91x+Dlm0hM9bTqOtakYee4ueNiU7mUjTCjGJtDmW5Rln1eaaiNreRDyzvNqC7MImWbvJzNpaXTAP1sOrjKud+VxyYw6v6rvIK/PKxD/H95a0PysNuLgDIoWkg11XRp5u9Ds3j2kmXNN0ob5U2HeMh32RFOby6LcXnY7uvpNs3225bJxu0rKCfOyRhV4yuXw8RqORbrEs7WBV6L96WejMddEHmMrOsw6wJtRmeFeIeecSr7En3taJ55JA9f9RnLvQK9p9wq2FbAvfBWvMexmsuSWuOZg5xaScxbBU77h6F7JMEv92H3iCvBhAlvRrCRU0g78xi3MxaMcOnTuitsbrCmKkvA1yX8FcfGe4E/ROqGwPU6+8bvRVusbxHDbvn5bcLCMDwfV3+jpNQ11YfscjHhfDjtn6GSx7HMmW581SdPmPmds3FHKeLHgzby5t9o8qbpY2xlcl3HGCcOKe5t3preyc1kyl8+tPKJS4R3bK4WyOObXWstTZP9S3Wer0eKfHBQ8V9XfPw/w0mdkSvJgc1CFIF/ynhqHVqEYtLen0iYenem2Y77Czh4vkDhaJOlPEA2io9GNCFoO4OaX/9OEWoRARhjJbIgkjjiLuLOCZsyNOJ2TManDygEAinYm6PjXwSkdxDNvEMOUC0IBiOKTkOiqOjjuZgCUlhWBfDON4pIgeUHCPaBZb6crpASqTHvPoTpuexSBNllWftawYcrOWNEM0WY9p3zFalaUwKOJ9PAF2ObviBFLp2UhtHlMHnqS0EI24HgWk9zU+QOeMsQKWJgpISPZ1GpjD7OkN3ToVc5A8wTKOyBad/xPTrCvMU32Wzwcva0mmBUxsXGdlmv2f+6b/TzfnVlyZnIFx/RZFi4sEYfRQTrVNnBOMa6TdbrmtbtdxWye1Y9vG3W7TtWu2dTD+CxE3YpP5SAAA cluster-total.json.gz: - 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 controller-manager.json.gz: - H4sIAAAAAAAC/+2a3W/bNhDA3/NXEEIfEkAJZMdu4gF9CNItGNa0XpduD20g0NJZ1kKJKkkl8Qzvb9+RkizJUWLXy0eT6iUxv853x+OPR5qzLUIs8ENFRwysn8iYMgm2rkxoDExi1WcsETIzf7Hep4pKngpPd7eGgkegJpBKyy56jENg/jGPx2GAXYqBeiiMacqUrNVifRqHSguLeQzWomGef5ovBAci9Ie8PtyaYPHALstXWO5VytdYdirlqS7fEB36WN0pi7ECcUmZ1qoTlabxRIU8XtLA44yLU+7Dsg2l+ISlQRj/CULicN3tstPZc/acUrKiIgBV+rvq8/X8bnrBdSJ0u0yj7TSZeSyVaMmbL9ar/OMXyyZ/8xHWXKQj2PV4rARnDMRuRGMa6A7znbrMMJaKxnqGlEjhxvyclzaEygSR9SmpGDZNTB3KUJljcrc8ZER5aCuPlmqNIMY+JNQLlQ6DjmPXm+WEXw05Tr40UwmXIKzlLrgu3qfMrIyaOyrTXQtqnsh7iemusxTUvfWCurtZUDMIIPaX/UrlWQ4KbXvNXo8yrx6+mRwq1XuutMusSst5bawfyoTRabGGMhjVemCzBxGYKLREGExUvV3P3LtC5XqYVtykOGcqTJativLvlWEcsDsJ9CTrWFAF21dcXHxNIQWX+r50FVeUbba8bZItaA/e/IsDiwKu+8+vXFd/mVtEyvnODhlNyXYuvBxpk5hGsMSJLGR+4SKiZppmhX7zOZnNiqGmoEfP59Y6LPkLDSe/a8vJke+Tj6jfTbioMAIJIgT5IyIGZQp1P5BZtXMeNENmv4XMy4KMD4ma/Gh8eauNbuGyBJfHAUun10yWXkuWZ0yWSYhxHAgauV9TPEKEDLadvcHAJg3IycGTYjVq50pAuGCmM0q9C1BPjSKbMNh5bB69QwVjb9oS6WFOVIcrkNTtNCOp3yLpJSQ7AqRyPRaiC1wBSB+pinPVplixPbRb13X39m6BzN0I6V5fW01+/t7t3d/Q3v1nam9vQ3t7z9Te/ob29mv23r7p/YaqkaPhr+Rjpnh7zH+wTLzzemnbO1xz23vdbnsvOhNv4McjZeM2weWhhw4//HF2V3Kuu9kkFWy9dFx3N+k3jlgz+8YlpBYQyvNvMhioCabkmdtaKj3J/UD3sJlKBy2VWio9LJVOfn5iKJ1Ay6RvYtJoquBx7gj2+81YOmyx9IyxlAjugZQIHBn6mjwRRFxMXRNXG2LmtpvIVbwo7xHXYsWp0bQFwkP9Qnq44vR0GxAGLRCeMRBMKlJQwUvSRebxf95hfMNvE/cMiePhJ5JKVKPlxGNxonbtchcoSjtbUjxDUgTcDbjgqQrj7z1VOFnouQYGtnIRloAxpkUTc3vvZCMt6U0goqWX981uh64NSr8ae0UMeWaeCVMQYaCgDiUqLIZnwspsVB/apkJkEVWbIAkMPAV+U5AruDbOydlT9yAurRSqrY0xOAlNsFUzf0ZHYFblW4wNkgdHpV3/3GvklqFTacWDnJjmaebNWEIHB6CJYVUri3mpSFyO9SppV4dsYVa3yaw8VptMamha2GPGu8arUr8+XvXO2Ca5tJ26/UWAVXWTGsyVJ9oVn2Tffz/uqM5yGKN6PhwxdiOySlcVa67JV01ttzprs6fa5e3FffrQ/D/fyr1pYFCuz7Ewm7UV86vdTvFcCkmd11m1Yf/o5/D6RfjZsZVXFjnIwhxympmTdUjNLmgddMEBpz+Ccd8ZDKA/dnqDkdMf+16vOwC/Z23N/wNa22+cvDAAAA== + H4sIAAAAAAAC/+2aW2/bNhTH3/MpCKEPCaAGtmM38YA+dMlWDOsl69LuoQ0MWjqWuVCiSlJNPMP77DukJOtiJXa9XJpWL4l5O+Y5/PPHI5nzHUIc8JmmYw7OT2RCuQLXVHIWXSis+YgFQub2L1ZTdSJF7IvLCNu0TGxn28Iijyc+fKBS1ZsuAOIzFkK9XtOg+Iq0ZzIGGYEG5WSV56XeMgD9M6fRRXmmaRvTdv7O74WBonEW2zafqulYUOlnxhc7mXknphHwBm99qqkSifTs+FMpQtBTSEq2Jwy4fyyiCQuwy7zwxIcJTbhWlVqsTyKmjbFIROAsGxbZp8XScCCZfyqqw50pFg/donyJ5X6pfIXlTqk8M+UV08zH6m5p4TTIL5SbWXXDwjURayai2gw8wYV8LXyo+1CYj3kSsOgDSIXDTbcv3e5+d7/j1FayuvSVIK2Nu+0FV7E07SoJd5N4jvJT6MnzT86T7OMnxyV/izHWGF099USkpeAc5NOQRjQwHRZ7VZssUppGOlPqyvqcryrufbyqNLShM425d64oD30VYa3WGuL8bUw9po0Muh232qym4vJU4OIru5TwBaRT74L74k3CuaqHo7TcFVGLWN2Kpnudmqj7m4m6t52oOQQQ+fW4UnWWUbEMrTTklHtV+aZ2qNJvhDYhc0ot55WxPlMxp7N8D6XkrfTAZg9CsCp0JAumutpuVu5VPuWqTEth0kJwzeK6V2H2vYpFAb+RQA+yjyXVsHsp5MXnBBIYUd9XIy005dttb5ekG9qD5//iwLyA+/7jk9HIfNkoV8r53h4Zz8huZrwY6ZKIhlDjRCqZX4UMqV2meT6/xYLM5/lQWzCjFwtnE5b8hY6TP4zn5IXvk3c4v1W4aDxJFUiWn5E/FmLQptS3A5l1J+dhM2QOWsh8X5DxIdbTH40vJ8bpFi41uNwPWLr9ZrL0W7I8YrJMGeo4kDQcfU7wEYJx2O3sD4cuaUBOBp4Eq3F2IwUIF8x0xol3AfqhUeQSDnv3zaNXOMHIm7VEupsnqqM1SOp1m5E0aJH0PSQ7EpQeeZxhCEYSkD5K589V22LF9dBvU9fb378GMjcjpHd15TTF+Vv392BLfw8eqb/9Lf3tP1J/B1v6O6j4e/2hZ15Rkxenv5F36cTbx/w7y8S7z2rH3tGGx96z9tj7rjPxBn7cUzbuEtweZujp2z/PbkrOTTeXJJJvlo6b7jb9xhEbZt+4hfQSQln+TYZDPcWUPA1bS6UHeT/QO2qm0mFLpZZKd0ull788MJReQsukr2LSeFa6LXGn7wgOBs1YOmqx9IixFEvhgVIIHMV8Q54QQiFnI6urLTFz3ZvIdbwo3iNuxIrXdqYtEO7qF9KjNU9P1wFh2ALhEQPBpiI5Fbw4WWYe/+cexlf8NnHLkDg+fU8ShdNoOXFfnKi8drkJFIWfLSkeISkCMQqEFIlm0beeKrxcznMDDCzvBUuYYFo0tW/vO+lIR3lTCGkR5QN72lXvMtfuMafGNIQoFJxDgQqH4zNhaTXKF20TKVNFVRZIAQdPg98kcg1XNjgZe6oRxK2VQLm1UYNTZsVWzvw5HYPdlSeoDZKJo9Rufu5Nb1cvpVNqxQc5OcvSzFUtYYADMMRwypXFfe2lxbrWy6RdL9ncrV6TW5lWm1xqaFr6Y8ePbFSVuX287p6xSzJre1X/c4GV56YMmEtXtEsxSb//dsJRXuXs9v4LzleUVYQq33NNsWpquzZY213VLt5e3GYM7f/znSyaFgbF/pxIe1g7kbh82s2vSyGpszqnMuwfcx3e3Ag/O3ayyjwHWbpDXqfupB0Sewo6hz3oQGcwhsmgMxzCYNLpD8edwcT3+r0h+H1nZ/Ef14z6OqkxAAA= k8s-resources-cluster.json.gz: - H4sIAAAAAAAC/+1dW3PbNhZ+96/gctMdeyzboiTLsmY6O4nT7HSmcbyu0z4kHg1EQjJqkmBBULbran/7AiAp3mHG0V3og2ryEJdzePDh4DsA87ynaTq0EAVDG+p9bQRsHzb4TQ+40PbZrS/sStOexS+7bwEKfBwQkz+uXxHsQHoHA19vxE+MELStC+yO0Jg9EhfkReEIBDb1M3fZ/cBFlFfmYhfqM8E0+ms6q3hMkHWFs8X1O3bZbiTXD+y6k7p+ZNfN1PUTvy5UjSx220guXQrJBNi8V4aTqIY9irCb64GJbUw+YgvmdUiq9+xgjNzfIPFZcf7YxDCOm8fNpGYKyBjSxN5pm9ezu3gKPnqEy0078JkKfZd1a2B6QZ8A1vMB+4WnznMk/fGr/ib686s+zVaEXJ8Cl78WSgJYeCm3SccRFZ6jX1x91j5TZCOfN+WmVHvyxAOsQhqaJjLMMnzKg6xWl4rLRbhWp55rtbbHtfzA2XeBA30PmKFv3QdDOPCwNTCxSwFyIRkQGFbI/vgzgD71+6xYud8daCcar1PUIvyVO0rgD4BtYxMIZHr+Aw9ZKf7IEZfCI9ZFgkz/q96Im2Jy1hl2o7yVebj3daSMdoEdB1GHOdaOuHmvnpu3d9XNbcT8YTuc/Behyu65uNGq5+Od7fFxQzsSXhmGCQ50MHkafITO2wlANnfJwfCJwhpunSt/gymww7KRU/MHjlizmIiCC3Lfj6IHOxiFGN16vnu6rfgc+t76RCJhfxbt6Lsbj7RqLum6O+zwS4xJluPu6xaZmExB7OTuiops+xN7S4hyzzSajazYv8MPV5j5oy+8C04g0fOPeMC9DGzBv2SMlJjpm4ZTNzecWi8xJN3y4XT2uuFkwzF0rbz5gH8TsU5cxYyLmMA2swMnrAf49BJTbhk9JbnNlLWQ79ngKR69IbOVeYKJTSj8h8kJGt/RrJy/oF/iLmd9NGUmirFNkZfXyona9ZE7tqV01moQhI/zBEYy0NFPQIQtMgaBD8YMEyC7a/kDymM6DiYDxFmkKkgZPmkJSuUGfugGHzBxgDD9YAACivXa5BLvT3HIU8RagwRBf+4DH7OhyYYUzLtibrwzdcw7SApAEI8affh0zVR/9HLDPDNc9JMfTvSMeJoDBY9gNq1SBIsjQyu0PGtbTMGNopSN3QBWTtV5rBGvZa+ib99ujkvmIVJjXMYutAiT2Mi992U2+VIQldWW9dD3hKG+ZuEHV6NYY+OqrIUwRiICNU+sk94pOO22mmc90xqdsf/OIQAGsKxO2zShacCT+55/FE+z/tFsXP37zXPi1X0WA5InDxDgTP81AeQoHpnxuBQ3Z2V/fPM8GPDSx8Lt/eOZqad6SX+nhXu39Z1kL393EVOV0Sqfq3qrBdpZZMY8AhJZHKW9AkpHMxAtmd+qAqzGXDILOHDpPpiMU8HoAyb3NgYW17efVbxPoA2G0JbNF3Hxhpaou67qr3oOXbHmc+X91RsONY9JtF0x7hxZdeVCr3ShFZhWHt3/N2B6p2ZkAlw/bCaKCStm5jCk+4Otp989feARTbYzZetRIRhGT/Ml+CzYzIWX8VoOB8woevkivCHrFiZj4KK/YM0+wUf2Aiz4LoyPS+LnG+SUrZdnMs2QSltSaVsq7Uilp1JpVyo9K5IcxUgfuRZ8lBtGKN+s1tyoVrtVrXO7WuFOtban1ap2C6Lf+LJD++fbbJ41K3zHhOdVwosSmimRvudSo0r6Uy71lZV+4NJ2lfQ/XFq0QjKe+tqZ9K0SyJ+tfq0py+hXZUuqtHn036M4svqxi3IuocximYS/LrNedmvAD7rMlqkMqy6zajoTW1Jj2sKVa2UpaXhb5FEEkm83d9ooy1WIPKW+FFrV6JWvVc8Vr7rhvGoSYkVpcOL7qUW/DWnVSp/djcv+gwkWyaKGeRRFoe4EhRpvhhAz3SqsksPVNbHHbEpXJsnmVZVBVNpBpR1qh3KtTsUhgqbKO6i8w0IoxeXFmOtCEM9pW99uvtICJ7z11pzz9jjlNmtsy/qbY1nTlwWGXyUYVIJBJRhUgmERCYYM8yLNMeQ5CWmaIY9rL2Qasot7abIhu796o/MNy+Ub3wHXekAWvVsN7/jOWx53UsccV8C8Z8vZFZGwniKSFJG0eURSu+prFMZqiSS++Si10HAh5XwJi/lNiCbRydBws1LdlUfyDv/3VT8+ZOuCL28G4psUgzjtebvWBEyFScRSgk2dyiZFN/HCKUEZJeMoyioSV7HYpOhBSxmn1GU2yjqSLZ8BYWszql2GehYOdyl2ZvvYme3mX1JUwpmMRejJuINzKcfSlHIshpRjaUkX9d25sSjxwL4OUV2bLZHl1Epc7CbCuxrlBNdyzTBMw6O4OUuL1qBy3iUuFbdGaxT8Sdac9j6EZTklI2m2ugK113OOez0zjMkid3q2K07QGy211XPDt3qu5cL4O3aFViP1MjaIKtBIQKNTcZTZaCvQ2E7QWDF19B2oIQnUFGwsGTYqTpUYHQUbGwwbfK8j2rZg4y0bWWAMtYtYpQQ/Mht1+rMlloKVFcHKadUO51MFK1sKK5sbjtTHlRT5oqAlCy3esqClW5Xz7ipo2fCFDlrThPD3ECQvccwKPpYMH1Xkqvo+6bbCx8q3TswBP2TZJgUhy4WQsyqqtacgZEcikFXtpFlAJFLIHis4WTKcVFGw6ss+OxORbDCe1NmQoiBFWBfhZWFKr4J/Tf7tE4UpG4gpbOa29xmwsDGdPnWdzxCPfBawAKt6oZM9xt3QLDhBIYzsn7C/jw8P/nYcc2jfH3vHh3+7Ewey/5GhxX59/jPhP4/i13KO+C/g92tAVXRwvASotEOtqMYDQTIyOa/Hqxs/mB8u/vzp6tf9a27+w99F7w8UDK4oC3Ve9S+qGgoFNzuyqguA8lzUpsHgt2nzejCc30afO4KD8d1VQAUihoB4sMUfkeTgv5ojzNnYcg0OdEfv3gvo9h9wV2e61ZnuuQUtFQmqVmsjZtyK2WmeU+uiJrqVHuJ82b7ytZAy8A468CvWzMpPlrG0UFaeF9wpMytnnus6eWt95uUPJvxKsdjo+vMn9bUE9bUE9bWEzf5aQpJoOJB/H0E8mM9FlH4RIamSwetLJd6nGD4vYvgO5J9ASD2dowJLv3mQqzzu08HyP3SwFz3AXtCIQJ8v7PV2M5x3dd+8gw5IluNt4Vus/DiBUzEDERdG/2RFWBmFjmcz3HUTzlK3kU9TIJxiE8wQxfNEvc8mNpMfSCjJP1D4KGaRKCmURccZUxZLS9MDd0hAc5qlEB/HFxwRC0e0KB5Jyd3QedPRSkoq6B2xwaYsfGEGHkNOi+jpm/ErSdWYJ0nSKbCXo6RYrVaZWtHUXaZSiWimjyg/EFb19wMvH3lMZ+HBQVbf2KHSffExoVmcndkgbG8v7b2cjpqGHoVSuKGPiMj46S5+ODLiM7Y6xdE9PVPsL+yK+j/fXOjRzTh8wA4bglC7jpk77US7SBlCD8JJmLlRrzuyDKtpGi0DtLqdTmfYbXdBe3TaPAc9fW/6f6nWJSM0lAAA + H4sIAAAAAAAC/+1dW3PbNhZ+96/gctMdeyxfKMmyrJnOTmw3O51tHK+bpA+JRwORkISaJLgA6Etd9bcXAEnxDiuOLFkS8qBIOMTlHB58OPgOSD9uGYYJHcTAwIVmzxgCl8KGKHSRf0N5yRf+wzAe5ScvBvSc4MDBdz6XMRLKi6UE+bYbOvAzILQouoEw+Ig8WCxnYJR2EV0ZDiDxIYPUjAuvM1eTEWSnLvBvsiONZIjJ8Zv/TRtIhQ+BlDmAjgcYECdufLIVN28GwIduhbYOYIDikNiy/iXBHmRjGGbaHiLoOmfYH6IRv+Qx1cSBQxC6jOZKeXnoIyYaCyBv1Wfy51Q+ib9Npu2PCHIucb4Vc8x/thrp7zv+u535fc9/H2Z+P4jfpaaRw4utzP1jkNwCVwzO8lINccAQ9gsjsLGLyXvsSLv42IdmqfnADUfI/wwJ5dXFZbeWtW/tH5qFG5r3gJytnjS/vAreB0TIuftRrkLP58Pq20HYI4CPvM8/4ZH3GEt//Gq+ib9+NSf5hpBPGfBZ7KWlm3Jd9razy0/GJ4ZcREVXftnleIPx7Y0Nsw6u1Z7NtZrr41o09LZ94EEaADvyLQFU/QA7fRv7DCAfkj6BUYP8y/9DSBnt8WrVfrdjHBiiTdmK9FfhKCHtA9fFNpBo/Pg7HvBa4pI9IYV7fIgE2fSr2Ui64nI+GF5Q3cs83PsqVsY4w56HmMcda0PcvDubm7c21c1dxP1hPZz8F6nK5rm41ZzNx9vr4+OWsSe9MgoTPOhh8tB/D723twC5wiX7gwcePT7t1oX6HzEDblQ3dmpxwR7vFhNZ8YXc970cwQZGIVZnNt89Wld8jnzv9UQi0Xhe2tE3Nx5pzril62ywwy8wJlmMu7+2yMTmCmKvUCobct0P/C4hJjzTOmzkxXSM7y4x90cqvQveQmIWLwmAfxG6Li0aKTXTN02nTmE6NZ9iSDrV0+n4edPJhSPoO0XzAfoxZtqyRFhkWeDa+YkTtQMou8BMWMbMSK5zdR1EAxc8JLM3YvNyV3CxDaX/cDlBozHLy8UN+iUZct5HM2ZiGLsMBUWtvLhfivyRC1XgtxwEEfM8hZEcdPRSEOGbjH5IwYhjAuSlDu0zEdMJMOkjwSLVQcrgwUhRqjDxIzd4h4kHpOn7fRAybM5MLonxlKc8Q7w3SFBCk85x4mM+NfmUgkVXLMx3ro49hqQEBMmsMQcPV1z1+6AwzXPTxTz44cDMiScFUAgI5ssqQ7A8M4xSz9O+5RLcKEv53A1h7VJdxBp5W7Zqxvbt5rjgHqI0xkXiQi9hkojOV9jkS0lU1VreQ88JR31DJAMMhg0+r6p6iGIkIlHzwDnoHoGjTvPwuGs7w2P+7wQCYAHHabdsG9oWPLjp0r1kmaV703n17zePqVf3eAxIHgJAgDf51y0ge8nMTOalLJzW/fHNY78vau9Lt6f7U1NPzIrxTkpl17M7yVax9CWWKqtZvVZ1lwu008iMewQkqjjKeAaUDqcgWrG+1QVYjblkFnDos21wO8oEo3eY3LgYOELfXl7xHoEuGEBXtV4k1RtGqu5rVX/Za+iSNZ8r76/vcKR5QqJtinHnyKprF3qmCy3BtOro/n8h1zuzIhPg06ibOCasWZmjkO53vp8+fXgnIpr8YKr2o1IwiK8WW/BpsFkIL5O9HA65UczqTXhDNSxMRsBHf8AZxwTv5bGR0yg+roifKw6O5GSGpZQ2ldKWUtpWSo+U0o5SelwmOcqRPvIdeK82jFT+sF5zq17tZr3OrXqF2/XaHtWr2imJPotth/HPt/k8a154yoUndcKzCpoplZ4LqVUn/amQ+spL3wlpq076HyEtWyGdTz3jWHlXCRTX1t/WjGXMy6otVdY85m9xHFl/2Vk1l1BlsVzC31RZL3804AdTZctMhtVUWTWbia1oMWvh2r2ykjS8LvMoEsnXmzttVOUqZJ7SXAitanWr96onmlddcV41DbHiNDihNLPpdyGr2+nz0qTuP7jgJVnUKI+iKdSNoFCTwxBypVuGVQq4+krsMV3StUnyeVVtEJ120GmHmUO5ZrvmIYJDnXfQeYcXoRQXF2O+FoJ4Tsf6NvOWljjhtbfmnI/Habd5xbac/XAs7/qixPDrBINOMOgEg04wvESCIce8KHMMRU5CmWYo4toTmYb85l6ZbMifr17pfMNi+cZT4Dt3yGHj5fCOp8HiuJNZzHEJ7Bu+nV0SCRtoIkkTSatHJLXq3kZhLZdIEoePMhsNHzLBl/CY34boNn4yNDqsNOvOI72Hf30193f5vuDLm758J0U/SXtev2oCpsYkcivBl05tk7KbBNGSoI2ScxRtFYWrOHxRDKCjjVPpMitlHcWRz5DwvRkzLiI9Sw93aXZm/diZ9eZfMlTCsYpF6Kq4gxMlx3Ko5FgsJcfSVG7qO3NjUZKJfRWhujHdIquplaTaxxjvZqgnuZYrjmEGHibdOUa8B1XzLkmtpDc2Q8WfVN0Z5xEsqykZRbf1DeiznnM865ljTF7ypGer5gl6q6mPeq74Uc9XuTH+jlOh9Ui9iAOiGjRS0GjXPMpstTRorCdoLJk6+g7UUARqGjYWDBs1T5VYbQ0bKwwb4qwjWrdg4y2fWWAEjbNEpRQ/cgd1etMtloaVJcHKUd0J5yMNK2sKK6sbjsyOKxnyRUNLHlqCRUFLpy7n3dHQsuIbHfRKE8LfQ5A8xTFr+FgwfNSRq/r9pOsKH0s/OjEH/FBlmzSELBZCjuuo1q6GkA2JQJZ1kuYFIpFS9ljDyYLhpI6C1W/22ZiIZIXxZJYDKRpSpHURXhSmdGv41/Rvn2hMWUFM4Su3u82Bhc/p7FPXxQzxkPKABTj1G538Y9wNw4G3KIKR7QP+fX9350/PswfuzX6wv/unf+tB/h8ZOPyTio9b8XEvPx1vT3wCUT4DVMUPjlcAlbFrlNW4I0hFJhf1eHbnO/PDxZ8/XP66fSXMv/ubHP2OhsElZaFO6v6iqqVRcLUjq1kBUJ2LWjUY/DZtng+G8zvoMyY4HI0vQyYRMQLEnTV+iaQA/+U8wpyPLV/BA93xvQ9Ctv4PuOtnuvUz3XMLWmoSVM3mSqy4NavTPJfWl1rolvoQ59P2Ve+FtIE30IGfsWfWfrKIrYW28rzgTptZO/Nc98lr6zNPvzDhV4blQdefP+i3Jei3Jei3Jaz22xLSRMOO+v0I8sJiLqLyjQhpkxxen6pxnmH4gpjh21G/AiFzdYEKrHznQaHxZEw7i3/RwVZ8Ab9BQwKp2NibrcNo3TWpPYYeSLfjLelbvP4ohVO5AhEfxn+yImqMQS9wOe76KWdpuoiyDAhn2AQ7QvEiUU/5wmaLBxIq8g8M3stVJE4K5dFxypQl0sr0wBhJaM6yFPLl+JIj4uGIEccjGbkfOW82WslIJb0jD9hUhS/cwCMoaBEzW5jckkyLRZIkmwJ7OkpK1GpWqRUv3VUqVYim+sj6fWlVuh0GxchjMg0PdvL6Jg6VHQvFhOVxdmqDqL+trPcKOmoSeRTK4IY5JDLjZ/r4bs9KnrE1GY7LzFy1P7Av2//08cyMC5PwAXt8CkLjKmHujAPjLGMIM4wWYe5G3c7QsZxD22paoNlpt9uDTqsDWsOjwxPQNbcmfwN9Xn5NKJUAAA== k8s-resources-namespace.json.gz: - H4sIAAAAAAAC/+1dWXPbOBJ+z6/gcjNbVsWHbsmumtpaO5PdVM0kXjuZeUhSKoiEJI4pkgOAPsaj/e3bAEmJBwjJjiTrQB4UEY2z0ejja0J+fGUYJrYdhvouNs+MAXIpPuSFAfKwS6HoCzwZxqP4hHIbMUT9kFi8unlJ/DFmIxxS8zCpMXCwa1/43sAZQpWkIW+KByh0Gc2UQnnoOYx3FmDo1WPicUqfxN8m0/6HxLEv/Wwv5ggeG4ez5zt4bqee7+G5mnp+4M+Frh0bimuzR49hcotcPrnaeLZCP2CO7+VmYPmuT37xbcEXz/ewWeg+cMOh4/2KCYXmvNptrXZcPa7OemaIDDGbsT3N+sXYL2rh+4BwOg3HBx5MqeehMaYBsnAv8O2e5XsMOR4mZ9NvPSsIeyFFQ9yjGEpt2mM+Q+4ZdNFzCGL40XJDCvz48av5Ov761Tw0pj3z8unDV3NSMU4MPv5N2M+N2iM4WgJ8+SPElNHH3/0+tOdVjyiDwY5gWcSxKB/haeMeGknvQIBF8ZlkmeN4MITHJY6REBcE7dtsMxwmDoV5cfnZ+Mwc16GIb7xxMAC+G8nkK6ntewhEA76GaPvjzd+F49Ne7PjU9fFZ1/FxnbGzpYcnmvq+HJ1afbGz09itszMT2TEe++Shd+eTG8cbwhlhvf4Dw2nZdTF7hsBOh/gbUHhNZwyHMHrYCBMUrXwZB+kX0ZM2REatu9hpaurTtO7TtFqLtIaztBl2yQK++ONcqejIdT8CYxzGxb5WPcyS6ci/u/RB2KkQXXyLiZmvAnHdh9AVkV2GWTN2pQSdHxHoBA4qzoqykZ/ZGDFrhElhyslZNPsP7whs6xUevH+bm1TmIJrnZoY4yS0gID7oF+YUJlScVGr0iKHHLkjrNXsAGTgs1gT9EGLJAqac5x3ZiI7MQoVJrmRy+IyJ/ebYbKSaWP35o3CV9ow132MQW94U+iDYlvTAtz5WlaL6ArzJPH97VbKelcnXhZavjZQvnyBviFctYq/ypQv4I52cP1JvzgGWOnJ/pPU8f8TFQ+zZeROB6KcYs+NqPGMOLeRaRek1XUTZB59x7Z9m4bdMW9uhgYseEvcnwgUzNYBs4TEW5tYkznDEsnRuhH5Oppy1xyk2Md93mRPkV5VsNAW/xsUq73HPwID+g3EAw+Ucn0g03vkE1COfY6+HQuabMo5/z8pBoBCJ/L7EG/sjhBU9PtWX484UFI4QseEx5dklIcyxFHTIL1MMbhxNA58tXHDkZz5tuVEbc2HQhUtg0ZFlDswPE27glu3OLs9XvAIW3AdKO37yw8kqLLmIWhWWTB7drti1+QAypWTGpW+vghngNtxQFTe+SKy1zNanZfMtAV/HsP07z2C+AUqNSo0+BxSIsJAn9km71a3hZhs3ccvq9FGziqqddrPdOG3hQadfb5zcdOlRcrzoEXT6z9ePM0k+Az1BHgIEHuLkH7eIHCXnODnFonB2jGeHWBCgux9fP/Z6vMNjIf30GDg+MSXTnhTKvm2Yd1Jryt2Ttrat6bkNpvpX4gSVIQ6HSwN7opmfTWd6JhgShGfIYs4tPlsI09wJVry8YMTAl96T5YhnDBJq4dwY4dyAHVH7sv/lLnDK/BDk0WiY2AMqMUORG/O773jnD++44c5ORhZvC0I/rs39PT+Pe02jVD8EFpnzIFTJhHwyRJ7zJ15wNvgetsPG55EfKPETPzljGRIwpRk1JbWupDaU1KaS2irCzEXf1PFsfK9enFhAtXz2tfKp18vn3SifdLNA+pW7vMbf/5VNSGWJ51l/LEu8AGK3jPgWiKdlxJ8kYL8RSeaZ0VLylmB+YsuZm1qVJGiUrU9Uu0oib9ViMzWNH0zV2kXdn6MAV8WGVD1ZjxFLJOGQ/JAWlU4SJAvFtdvpnkNZ7lbkEU2dCdJIvc4EafnSmaDvxFrqNTnW0tGpoC1PBa3hbRxjzus4+5ITKnvtZ3fTQk9d8RMyQ8mbT9zPNw7uTnzDQmBPK2tNFM17g3AtXqjOMekck84xrcjv6cr9nu6+v0K7PWB+xKE9TG1sjIwokf293Z7v5MYuJZ92TlR3enMIXfp2bMvSRYixr4undyjY7LXPjRZ1+nW7069yaltJ7Sip3d1J7E550SpnRLucCx1VpvhUlUmVpHRT2dNaTZUvrdWVyeJGGfWdeAGwjPpvTm2VUf/Dqe2SnGt3aWnoNEKlzkTHNRdLRucqz8tHx9UXSUlnqir6fVfE366uryumajdy9S+yWJ1sh3ItrsH6VLYtUb5ekO8cefYdT4m9DNh3HtC1gXyLsOMSWTeY0RdCPtfIDI14asRzaYhnoyVHPE9fFvHk75amQhIPM44RQMRtYQjGI5Agehf1e0OUyZfXvR4frpektL9VNjNCK+GJiGrAhGumSAQliIyC5kpWVDRbVMJig3kMsK25Ixea7WKP4gX9kEB8x4wP0UILF081WrRLaNFuIz4pIKKjwh66KqzhVIncVJXITU2J3NRLAvn28i4BxIf5KtLlxjQ4nnMpIG72KVZyC7QTqMwVaCzDHyTD2UYcfarBmaRVMhpboOFPquGMt5EuVmM3imHLO9BXEr7zSkIGH5k8P4TL/AijLIRr1kt+ELiq39bd8rd1nxAGr87tmvtmbrmLVa6NX/J1zX1QEoWfbi3VEjWtJXZTS0iBoY1UEwrvS+sJVsgvrNSZOC1RE3WtJrZcTThPwko305+YF3ZpdbFadVF0K8r0RUPrix3VFyVZhI1WGCrEReuM9boYrXaJymhqlbEnLkY2hbRVrkYBMdXqY80uR6n+0D9UvTcuxxYpkEWyLlqHCO46/rp8kHajRIe0tQ7ZYh0Cpto9AEUCpzm635fHRgcUfBFkT2OW/DVBG986oDD+99U8OIHvx28qf43HVt+9OQ6O3/zl3Y4x/Ef6NnxS/nHLP+7Fpz0+4p+Ily/nPRjjjVGc/h1xUmjuRs+/sjxl+v7j5fXBFd+5N78JBlS07nypTFKp7tS/DrXl/td8tZlJJW2t8tyeVSwxxzYifjgcXYZM6NFIjVZ2+O9scJPxMpeBsm7sBlyNivc+CNnuXxXTt6P07ajl/UW0kj/RWutuuJ0ueTd/mbYtbzeXbuxe9DaEisWZEEzzWIvxU8N2LTNrClE0o1epADWntUgvKwzfQ/mZfzPxmvmE/xrK+4/6WqK+lqivJW7ftcRZ3qKivogoKuZTG9Krh7MuQbfOa/E2Bf0FMfRXUd81TNXOYYTSy4W5zpM5rem3m17FFWBTBgRTHuSbjWpka01qjfAYzULzhpAkaD+cqU1hcoiH4x9ujzpjeBy4oF+9GYBpug5lKWWbQhasSFvnoX4Klsxi2JZlMBi+F9YizitldeEUNkuo0gTDyBGKOI1YuAisp4CNwAUxYh8kRfcigU17KCmqwH2E1pe5LMDgIeYQiZkuTLYk1WMeMEln0eZ7Rsmy6rJlxbZatiQJaboe0b4nuEoPwvRvWh6BYWb4CKZBHIuCpZ+6BpXs0hPZSk+L+oRlFeyUHdHQy+GEdIOn3omMF1KinBviR21nfwaSsyOkvWCEKFawSe5ATVIe1DLZ9yoB+SbR2XRSWtccEJF+NT3/7qiW3BoymR+XmZlmf/qe6P/zpwszLkwcLn8MCgwbVwksapwYH5LFGAegsmIda4aRF9NtoVa7Xu10LXvQgX+nGKEasu1mw7KwVYNjMPk/uXoxGKSUAAA= + H4sIAAAAAAAC/+0d2XLbOPLdX8HlZrasii+dll01tbW2J7OpnUm8dpJ5SFwqiIQkjimCA4A+xqP99m2ApMQDpGRHknUgD4qIBgF0o+8G5KcdwzCx7XDUdbF5avSQy/CeaHQd75ZBy1d4MIwn+QnNiF1Q4tvk3gMYp4HsLCGOZ7mBjb8gyrKgW4z9T84QZ9s56k+mCHsGXUw9zDEzo8abRG/ax/zMRd5tcqUhzOFy/eZ/JgNMgI++hNmIDboEUTsafLQTDW/6yMOuAlsbccRIQC35/iUlQ8wHOEiM3XOwa58Tr+f0ocvTBBMb91DgcpZqhfbAc7gYzMcwqsfl4xg+ir6NxuP3qWNfkvQo5gAe63uT53t4biWeH+D5KPH8KJ5zQzs2NFcT+8cxvUOuWFx1OMGQ+NwhXmYFFnEJ/ZXYki4e8bCZG953g77jfcGUweui2121elA9ODIzG5rmgBStppJf9sIPPhVwFgx3PVhSx0NDzHxk4Y5P7I5FPI4cD9PT8beO5QedgKE+7jAMrTbrcMKRewpDdByKOH4CXmZAjx+/mW+ir9/MPWM8smgfP3wzRxXj0BDzC/5Nz9qhOEQBvvwRYMbZ0++kC++LrvuMw2T7gBZ1LCZmeN68e0Y8OgAAKbGSNHEcD6bweCR5OUa7yUvQ+eVn4zN3XIchsfHGbg/obsSLr+TFSuAQCdTexohPazbxqWnxWZb4uM7QWVPhCZe+LaJTrc0mO/XNkp0Jyw7xkNDHzj2ht47XBxnhne4jeCQJ3nUxfwHDjqf4G0BET2cIQhg+rIQJCjGfhyD9KkfShsiotmeTpoaWpmVL02It0hJkaTXskgV0IcNMqxzIdT8CYRwu2L56tJcGswG5vyTA7EyyLr7D1Mx2gbjuQ+C6LEusCbkSjC5EBAYBQcVpVjayKxsibg0wzS05lkWz+/iOwrZe4d77i8yiUoJonpkp4CiDgA+xNqbcyS0ov6jE7CFBDyCCx9f8EXhgL98T9EOAFQiMKR8HzGauwyjTMtp7wcJ+c2w+KFtY7eWzCJX2ApwfMLCteBXGoNhWjCC2PlKVsvsMtEk93+wU4LMw/jrX/LWS/EUo8vp40Sy2k22dwR85zvgjtcaUxNKx2h9pvswfcXEfe3bWRCD2KUpQJvOHofVArpXnXtNFjH8gXGj/JAlvUu/aDvNd9Bi7P2ESNNUDwBYeYmluTer0BzwNF0bol3jJaXucIBMnxOWOn8Uq3mgGfo2Ly7zHLUsGdB+NXZgu4/iErPGOUFCPYo2dDgo4MVUU/x7MgaEQ3R2ih9D3iz2yPwLA6um5/pxwqKBxgKgNjwnvLg5jDqLEwxRc5ezG/jj6WVOsQ4fzmTiHL5kzp18EL+ZdWu7AAjF14srCHB3b+XmNV0CCB7/Uoh/+cLgImy7j1xKbpo5zF+zkfACmKiXGJbEXQYyw9lVCja8Ku62y+knevKDg9RiicmZwYoB6Y0rzL1ILVNrKQ/uw1WxXcaOFG7hpHXdR4wgdHbcarfpJE/eOu7X64W2b7cfyxfZh0H++eZpw8ikoC/roI/AVR/+4Q3Q/FuRYjGXjRI4nUiwBMNyPb546HTHggeR+dgAUH5mKZY9ybTcr5qdUG2pHpaWtbHJtvbH+VbhDRbmHvbmlfcKVn45XeioJ4genyOLOHT6dKbu5EaR4fcaIUmB6T+bDnlG6UDPnyjDnCuxIuS/7X+ECJ8wPRR4Lp4k8oAIzFLoxvxPHO3t8Jwx3ejGqyFsCulFv4e+RbAZsHK+SAEhkTkumKhZEaB95zp94xtXgB3mi6Cz0AxV+ouJMUQpmVEuhtVJovRTaKIU28wnnvG/qeDZ+KEdOInBUvPpq8dJrxeuuFy+6kQN9ES6v8fd/pUtTaeBZ2h9LA88B2C4CXgDwpAj4kyLtb4SceWo0S2lLsZDYYuImsFIEjSr8ZLerOPwuQzbV0/jBLMNd9v0lDHDLyJDopxoxJIkiHFILaV7pxEGyVFybXfjZU1VxZUXR1DUhnbPXNSHNX7om9J25llpVnWs51kWhNS8KLeFcjjHlYM42VYcmh4C2qkD0bLSfUSOKT0MJj9/YvT8khoXAslaWWjKadqpwKf6orjbpapOuNi3IA2qrPaD2th+rXZ+0fkihLSxyrAyPlOb4t3Z7vpMam1SG2jhW3ejNoWzu27EuqMsQY1uRZ/fIX23cp0aLuhC73oVYNbRVCj0uhbY3p8Q7pkWzmBCtYiocl9WMT8pqqoribqKOWq2WVU6rtdKycb0I+k4eBSyC/iygzSLovwW0VVB9bc+tIJ3MUJXXpKOes5WlM52nVaaj7rMUp1NdS8Z9l8+/XV1fV8yy3cj0P0/n6lQ7lHnjGqxPZd1K5stN8p0hz74XxbHXSfad+WxpSb5ZyHGJrFvM2StlPpdIDJ3x1BnPuWU86011xvPkdTOe4pRpIiTxMBc5Aoi4LQzBeJgkCE+lfm+IMvr6ptMR03Xi4vZNZTUjtAKayKgGTLgmioJR/NAoaKqkWUWTpYxZbDCPPrY1ddRMs17kKTmqH1CI77jxIUQ0dwVVZ4s2KVu02RmfRCLiuCz30C7LNZyUZm6OSjM31dLMTa0gkG/N7zpAJMxXoS43xsHxlOsB0WufIiU3w3syK3MFGssgvXg624iiz/LkTPxWPBuf4cWfyqYzLkJdXJ67KZm2eAB9OeE7Lyek8iOjl4dwqR9mVIVwjVrBjwQf6XO7a35u9xlh8OLcrqlndItdrGJt/JrHNbdBSeR+zrVQS1S1lthMLaFMDK2kmijxvrSe4Ln6wkKdiZMCNVHTamLN1YTzrFzpavoT08IurS4Wqy7ybkWRvqhrfbGh+qKgirDSCqMs46J1xnJdjGarQGU0tMrYEhcjXUJaK1cjlzHV6mPJLkeh/tA/Xr01LscaKZBZqi5ah0jqOmRZPkirXqBDWlqHrLEOAVPt7oIiAWkO7/dlc6M9Br4IsscxS/aaoI3vHFAY//tm7h7C94O3lb+GQ6vr3h74B2//8u6GGP6jXRs+mfi4Ex8P8tMe7otPJNrncw7GeGvkl39PnUQ2d6XXX5mfMn3/8fJ690rs3NvfJAEqWne+ViWpUHfq34lac/9rutpMlZLWVnmuDxZzrLENKAn6g8uASz0aqtHKBv/FDWEyXucyUNqNXYGrUdHe+wHf/Kti+naUvh01v7+SVvBnW6vtFbfTBWfz52nbsnZz7sbuVW9DlJE4FYJpGms2fm7YrnlmSSGKJvQiFaCmtGbpeYXhW8g/028mXnNCxa+hvP+oryXqa4n6WuL6XUuc1C0q5RcRZcdsaUN59XAyJOjWaW9cJFJ/fpT6q5TfNUz0zuQIlZcLM4PHa1rSbzftRB1gU3oUMxHkm/Wj0NaazBrgIZqE5nXJSfB+f6I2pcmhHo5+uD0cjOOh74J+9SYJTNN1GE8o20RmwQq1dTbVz8CSWRzbqgoGxw/SWkR1pbQuHKfNYqiywDBwpCJOZixcBNZTpo3ABTEiHyQB90KGTXooCajM+0itr3JZgMB9LFIkZrIx3pLEiNmESbKKNt0zitGqqdCKbLUKJQVojI98vyOpynaD5G9a7oNh5ngflkEdi4GlH7sGlTTqMW8ll8UI5WkFOyZHOPV8KKHc4LF3oqKFEqimhvxR28kfhBTkCFjHHyCGS8ikdqBGCQ9qnuTbiZN8o1A2nYTWNXtUll9Nj9zvV+NbQyYnUZuZeu1P4snxP386N6PG2OEiQ1Bg2LiK06LGofEhRsbYBZUV6VgzCL2YdhM1W7Wj47Zl947h3wlGqIpsu1G3LGxVQQxG/wfkJal8pZUAAA== k8s-resources-node.json.gz: - H4sIAAAAAAAC/+0aXVPjNvCdX+GqXAdmAiQhQC4zTKfHlfbhjtLj7l56jEexlaDDtlxJBkLG/e1dyXYi20oIw/cRHhh7dy3trvZbGa84DiI+lbgfENRzBjgQpKGAMY5IIAD0D7w5zlj/B7iPJRYs4Z4iR8echUSekUSgRkExoCTwD1g0oEMgKT5Un5IBTgIpSlCAe4mQLKxA9UJB8FeMPSpHgGw1G2W0OGOXx4xGekEUkQvCUZUEpDhKAi2H5AmpoiX2zmk0rG0NuJD5WsKI8RAHqIROV2zP6XR1xIAZTn0yVWD2V5EwxNI7A7Yt+1Nf7d4fHeGQVMRS68eSskgLHuIrx8O5mspsVsSNOYsJl7TGVZ0zgwWPBYzXOAD0BQ4SYmE9P7srAkagPoU1OPEtKxha1uSoRpFWIGljYa61TW1OTvi2/E+PPyIPwNcZ2MYh+M6t+QrIkES+6ak1EslYIGlsNfliC3pdLHH/sgU0IidyFJBbC+djcWYxzeyv6v9TuAV82rAbZRAoRvU+Nwteej+1+nwBnSgJDcHtj1k5xiEl1a4RHi7hvd0xAFcAMORDKuA1a2trNbemr5EkHBSqRGpNTckIDgYLE8MphV4sPueRv2oryMOBVw8UKMBCHjGpoqqpwpLCkU9FHODRx9yJsuxSogC0R0ISSR0e6PBMlvEquH8oWFa8WcPs1NRLUhXOK8DzA8N905pG4yAZ0ugr4QI0pj65aLU2m5vNqTIl5kMiy4oobXZjQtRU5CrWkVAk4dp50iduBDy6EJ5kItwifI+9AFyI8P1vaDV//IYajiLd/w9g6kEBOMk2BDovTr6hdL28WXbWhypzydkpwlDkHQXSskSQqCDfesSNme96LJIYAgHvTZ5c4NVNBB6C3ASgvnAlkzjowRIu5ViSxeRP153+yFmDXW4QezwGmjStn//p9HSp1NaPDo6/OF8Ub8bJj+LMeikIRrhKmyuG3u6jIrq/MuETyH4Vzy0Utt5sPUR9kERUzov0CNb0wNE13eIhtvGwVdMx8x9CGZD7zsU8bdhy29ia16a2+Z5D3nJ8dhk5kjlg0wLZUyFKuE4GW/7W7k63RTq7pEN2vL0+7jRxc2+3s7v9docM9vrt7a3zrtgo4ojYgEV/XR1PLbn3b0L4KMYch+kvF5hvFJ5Z+KUGTlx+f3XyqBGw3P7q2HXVgpva+sUmaDxFFrbTGuz0mSXiXXsibj9tFnkmQXcwCbeWLE8jyHA6x89K4XdUQs5wb6KHntZDnPSwJ+kF6elcW9KNW1g9PICVCyletAaezAycLWd5AnfWQEBDurTAp7PAp9P//Fr07wSUY+QPjiORbZNXMDPySFaGfGc0ejc6VIm3zIytNdSIfk6t6jVWHdZMGiqWgGbQTdMvC0OMD3FEr8mC3JArOAWfvMvqOEud95mGZMaAQ+Oc1lxsey52ey62Mxe7Uz1nW23JibLV2dJ9VcWi8/Nv9sakSvauIPuUR9OZlAdVSufNTNr3Be0H7SEz6X4v09lWVAZlLbnthlR3jKIR08513z3YjzmVLvmZbr10XySLJnY5sF4OrJcD6+XA+j775Fbb3ihvLyfWy4n1ZGIdkpDx0YsZWmfsupeMq7AMvYt0dRpdVPLJSj8B5QMNrz9qHrMy0Vm73GKgOEjT6486y55VRz1q8bEcgy/H4Msx+AOl9649vXdexBz8jnF80TD+HEeRmejLifgjGcTcseQrO4u7KuH1jMefuzm+upPg4sfKDbeTXjcQr1h+cYnj5yD+jU3f8qLoZV8U2bG7c7F7c7Hd+76CMscL82+hcsrFLqIqxDfdReXki1xHlUjnrHtYH558OjlZn0n/R53+oDxoqX7xZ/2LE4gs649zSbaSE8BpDyCRq64PbTcz5SEBjId42qxtv9VgiYfTqIFURcAjkk9ussUkCeMAwotxQwUNv5BGrDFaTS/hPBualrxdkIB4kvi2Oa4kVzpM5hOlciiYzFMKrHWipK4rKi1sgPtEjwXeQ+pw8txh4KPME8zMYmD1IEAHPVuqAQUPieqZkQksjsRYsdpBm/OzmzNaIVbbJlaeoWwiWVATefT3rtaqWEvi8XfWhzSmzn1DzXrJBrDBqScgsTWcfKH1suiFbZlsCcal+WN1Qx3Z1vejCesBq7xs0oZgJrRmaBPtVMntqpmOwGk0YNbSIM1qgwW0Y1fFSjHBSTM/o0ZoRgOuL6OB28uN1lm+BZIsh6HSZ9fqEhAQXz4foBxY/LaEhTHkZoi6+cwL2oMjYNpZg8gjMtZRkuXidrOJve7A7w/6/b1Of/stHgy63VarSzp+y2t7aCX9H2qTRQlANgAA + H4sIAAAAAAAC/+0ba08jN/A7v2LrchVIAZIQIBcJVYUrrdQ7So+7+9JDkbPrBBfvemt7gVy0/e0dex/ZhxOCeB/hA9rMzI5nxuN5OZmsOA4iHlV4wAjqOUPMJGloIKPBhQTI3/DBcSbmP4CxfCd46PGrAHBKRIbYYGjgssgjX7CQVdQFIeEn6pMqXOHRdImEMhoQERBFJEqBZwVqMSLqgOHgoihpgqPKyI/+mDKYIsehwXlYng84Fl7KPF5J2aMQB4RZtPWwwpJHwjXvnwjuE3VOogLvISXMO+TBkI6AZDLVxCNDHDElS1CAu5FU3K9ADSPG/gyxS9UYkK1mo4yW5/zqhNPAMEQBuSQCVUlAi+OIsar5M7TC7gUNRrWlAedzz2gYcOFjhkroeMX2HE+5Iw7CCOqR8l46VQ19rNxzENuyPvX06oPxMQYnaVSxPFSUB0ZxH187Lk7NVBazom4IbkqEojWp6pIVRHA546ImAaAvMYuIRfR0764JOIF+FXgI4lk4FKxsyFGNIq5A4sbCUhuf2sx3+LbyT7c/IA8g1zn4xhGcnVvLxciIBF71sJdIFOdM0dDq8tkS9FvG4v51gzBJTtWYkVsrp6ORxTWTv+r5n8It4LOG3SkZy6LeApta+nxmPfMZNDcSGsGxP+HlGIe0VruF8HAFn9udAuAaAAX9kA54zRpvY+ZWIb0oIsCgWqXW1JUKwaEgQu44pdCL5ac0zVV9BbmYufVAgRiW6pgrHVWLJiwZHHlUhgyPP6SHKEmlJQpAu8QngTLhgY7OVRmvg/v7TGQtmzXMTl29pFV2eCWcfFY4vnHNoiGLRjT4QoQEi+lXLlutzdZmE1VSbNkQpcVuTIiGilyHJhLKyF/TGb0fgIx9CE8qkv0sfE+gXJCwp/tf0Wr6+BU1nH/4ACD6rQ39AtmAFQR1pcZpNvv/Ab1+0ABBEmHgDTeMvqJ4vSxI4gdHOqup2emjYOQ7Kmv0DCCJQS52ST/kXt/lgcIQJEQvf+qDrP1I4hHYhADUk33FFWY9YNGnApSeYZuK/vG6Mxg7a7DKDWpPJkATx3XfOKsXUIcnn53PWrZ6/aSghJNE0Kw4S+12H9XS/ZUQH0H363BuEbH1ZushaocooGpeFkDA04UgYOgWD7+Nh62oTrj3EMZI2oc51rDlvYk15019852AnObo5sNR3AGflsieJlEkTKLY8rZ2d7ot0tklHbLj7g1wp4mbe7ud3e23O2S4N2hvb1105UYWR+QGMP15dTL15N6/ERHjEAvsxz9dYrGRnczsXBpgfuT3V/NHgwB2+6uTfl8z3DTeLzfB4jGyiB3XYGfPLEnv2pN0+2kzzDMJusM83FoqABpAMjP5f1Z6v6MRUoF7uR16xg5h1MOuopekZ/JwyTb9zOvhAbxcKvmiLfBkbuBsOcsduLMFGPXp0gOfzgOfzv7za9G/IjBOIX8IHMhkmbSCmZFHkjLkH06Dg/GRTrxlYWxto0EMUmpdr/HqICdvtngElkE3TcYsAnExwgH9RhaUhlyboepBUsdZ6jzLWLWEc1pzse252O252M5c7E51n221pSDaV2dr90UXi86Pv9gbkyrZQUb2MY2mMykPq5TOm5m07zLa9+aEzKT7tUxn46gdylpy2x2pfjCyRswcrvvuwb7PiXXpnJnWy/RFhRuG5TB7OcxeDrOXw+z765NbbXujvL2cZi+n2QtNs33iczF+MQPtRNz+FRc6ZENfo/omxS7WTjScnNMPQPlAg+0PRsakhHTWrrY4GA5S+Pqjzrln1ViPWpgsR+TLEflyRP5Aqb9rT/2dFzEjv2McXzSMP8cxZaL6clr+SA4xd2T5yvbirkZ4PaPz5+6Or24nhPy+csPttDcNxCvWX17h8Dmof2PTt7xEetmXSHbs7lzs3lxs976vp4rjhfk3VCnlYpdUFeKb7qlS8kWuqkqkc/ge1YcnH09P12fS/1anPywPWqpv/F5/4xQiy/rjXKDlPwIRZAiJXHd9aLuZGA9JENzH02Zt+60Bl364UvnRSsJMET9kEF4Kt1fQ8EtViDWFVtONhEgGqqXTLgkjriKebcaryLUJk+lEqRwK8nlKhrVOlPRVRqWFZXhAzFjgHaQOJ80dBXyQnIRiZilgzSDABD1bqgEDj4jumVEROP1xTs6x2kEX52c3Z7RMrbZNrTRD2VSyoHJ9zPt9Y1W5FoWT2WPduOGkjNbLqme+VRRLcqGKX3IvmCNZ+n4sYd1gnZeLtD64Ca05Wm6dKrndNNPxOA2G3FoaxEltsIB17KZYySY4cXLOaCE0o6EwF9Ug7dVG6zxdAimewlDptW/6ghAQnz8dohSYfe+E+yHkZoi66cwL2oNjENpZg8gjE9FRlOTidrOJ3e7QGwwHg73OYPstHg673VarSzpey227aCX+H/rSFT9lNwAA k8s-resources-pod.json.gz: - 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 k8s-resources-workload.json.gz: - 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 k8s-resources-workloads-namespace.json.gz: - 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 kubelet.json.gz: - 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 namespace-by-pod.json.gz: - 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 namespace-by-workload.json.gz: - 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 persistentvolumesusage.json.gz: - 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 pod-total.json.gz: - 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 proxy.json.gz: - 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 scheduler.json.gz: - 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 workload-total.json.gz: - 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 diff --git a/charts/kubezero-metrics/templates/rules/kubernetes.yaml b/charts/kubezero-metrics/templates/rules/kubernetes.yaml index 40b8368c..266ea6ea 100644 --- a/charts/kubezero-metrics/templates/rules/kubernetes.yaml +++ b/charts/kubezero-metrics/templates/rules/kubernetes.yaml @@ -83,7 +83,7 @@ spec: description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} update has not been rolled out. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout summary: StatefulSet update has not been rolled out. - expr: "(\n max by(namespace, statefulset) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" + expr: "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" for: 15m labels: severity: warning @@ -328,11 +328,11 @@ spec: description: The API server is burning too much error budget. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. - expr: 'sum(apiserver_request:burnrate1h) > (14.40 * 0.01000) + expr: 'sum by(cluster) (apiserver_request:burnrate1h) > (14.40 * 0.01000) - and + and on(cluster) - sum(apiserver_request:burnrate5m) > (14.40 * 0.01000) + sum by(cluster) (apiserver_request:burnrate5m) > (14.40 * 0.01000) ' for: 2m @@ -345,11 +345,11 @@ spec: description: The API server is burning too much error budget. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. - expr: 'sum(apiserver_request:burnrate6h) > (6.00 * 0.01000) + expr: 'sum by(cluster) (apiserver_request:burnrate6h) > (6.00 * 0.01000) - and + and on(cluster) - sum(apiserver_request:burnrate30m) > (6.00 * 0.01000) + sum by(cluster) (apiserver_request:burnrate30m) > (6.00 * 0.01000) ' for: 15m @@ -362,11 +362,11 @@ spec: description: The API server is burning too much error budget. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. - expr: 'sum(apiserver_request:burnrate1d) > (3.00 * 0.01000) + expr: 'sum by(cluster) (apiserver_request:burnrate1d) > (3.00 * 0.01000) - and + and on(cluster) - sum(apiserver_request:burnrate2h) > (3.00 * 0.01000) + sum by(cluster) (apiserver_request:burnrate2h) > (3.00 * 0.01000) ' for: 1h @@ -379,11 +379,11 @@ spec: description: The API server is burning too much error budget. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. - expr: 'sum(apiserver_request:burnrate3d) > (1.00 * 0.01000) + expr: 'sum by(cluster) (apiserver_request:burnrate3d) > (1.00 * 0.01000) - and + and on(cluster) - sum(apiserver_request:burnrate6h) > (1.00 * 0.01000) + sum by(cluster) (apiserver_request:burnrate6h) > (1.00 * 0.01000) ' for: 3h @@ -398,7 +398,7 @@ spec: description: A client certificate used to authenticate to kubernetes apiserver is expiring in less than 7.0 days. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration summary: Client certificate is about to expire. - expr: 'apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 604800 + expr: 'apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 604800 ' for: 5m @@ -409,7 +409,7 @@ spec: description: A client certificate used to authenticate to kubernetes apiserver is expiring in less than 24.0 hours. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration summary: Client certificate is about to expire. - expr: 'apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 86400 + expr: 'apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 86400 ' for: 5m @@ -452,7 +452,7 @@ spec: description: The kubernetes apiserver has terminated {{`{{`}} $value | humanizePercentage {{`}}`}} of its incoming requests. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests summary: The kubernetes apiserver has terminated {{`{{`}} $value | humanizePercentage {{`}}`}} of its incoming requests. - expr: 'sum(rate(apiserver_request_terminations_total{job="apiserver"}[10m])) / ( sum(rate(apiserver_request_total{job="apiserver"}[10m])) + sum(rate(apiserver_request_terminations_total{job="apiserver"}[10m])) ) > 0.20 + expr: 'sum by(cluster) (rate(apiserver_request_terminations_total{job="apiserver"}[10m])) / ( sum by(cluster) (rate(apiserver_request_total{job="apiserver"}[10m])) + sum by(cluster) (rate(apiserver_request_terminations_total{job="apiserver"}[10m])) ) > 0.20 ' for: 5m @@ -642,14 +642,6 @@ spec: labels: verb: write record: code:apiserver_request_total:increase30d - - expr: 'sum by (cluster, verb, scope) (increase(apiserver_request_sli_duration_seconds_count{job="apiserver"}[1h])) - - ' - record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h - - expr: 'sum by (cluster, verb, scope) (avg_over_time(cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h[30d]) * 24 * 30) - - ' - record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d - expr: 'sum by (cluster, verb, scope, le) (increase(apiserver_request_sli_duration_seconds_bucket[1h])) ' @@ -658,6 +650,14 @@ spec: ' record: cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d + - expr: 'sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h{le="+Inf"}) + + ' + record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h + - expr: 'sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le="+Inf"} * 24 * 30) + + ' + record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d - expr: "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"\ cluster\",le=\"30\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n" labels: @@ -800,20 +800,26 @@ spec: rules: - expr: "container_memory_swap{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", image!=\"\"}\n* on (cluster, namespace, pod) group_left(node) topk by(cluster, namespace, pod) (1,\n max by(cluster, namespace, pod, node) (kube_pod_info{node!=\"\"})\n)\n" record: node_namespace_pod_container:container_memory_swap - - name: k8s.rules.container_resource + - name: k8s.rules.container_memory_requests rules: - expr: "kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n" record: cluster:namespace:pod_memory:active:kube_pod_container_resource_requests - expr: "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n" record: namespace_memory:kube_pod_container_resource_requests:sum + - name: k8s.rules.container_cpu_requests + rules: - expr: "kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n" record: cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests - expr: "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n" record: namespace_cpu:kube_pod_container_resource_requests:sum + - name: k8s.rules.container_memory_limits + rules: - expr: "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n" record: cluster:namespace:pod_memory:active:kube_pod_container_resource_limits - expr: "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n" record: namespace_memory:kube_pod_container_resource_limits:sum + - name: k8s.rules.container_cpu_limits + rules: - expr: "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n )\n" record: cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits - expr: "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n" diff --git a/charts/kubezero-metrics/values.yaml b/charts/kubezero-metrics/values.yaml index d4cbcc7e..a3aa22e9 100644 --- a/charts/kubezero-metrics/values.yaml +++ b/charts/kubezero-metrics/values.yaml @@ -102,6 +102,8 @@ kube-prometheus-stack: podMonitorSelectorNilUsesHelmValues: false serviceMonitorSelectorNilUsesHelmValues: false ruleSelectorNilUsesHelmValues: false + probeSelectorNilUsesHelmValues: false + scrapeConfigSelectorNilUsesHelmValues: false resources: requests: diff --git a/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-diskpool.json b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-diskpool.json new file mode 100644 index 00000000..4c679eff --- /dev/null +++ b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-diskpool.json @@ -0,0 +1,836 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 41, + "links": [ ], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": true, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisGridShow": true, + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "fieldMinMax": false, + "mappings": [ + { + "options": { + "1": { + "index": 0, + "text": "Online" + }, + "2": { + "index": 1, + "text": "Degraded" + }, + "3": { + "index": 2, + "text": "Faulted" + }, + "4": { + "index": 3, + "text": "Removed" + }, + "5": { + "index": 4, + "text": "Unavail" + }, + "6": { + "index": 5, + "text": "NoPoolsAvailable" + } + }, + "type": "value" + } + ], + "max": 6, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "maxDataPoints": 827, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "timezone": [ + "browser" + ], + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "diskpool_status{name=~\"$mayastor_diskpool\"}", + "instant": false, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "DiskPool Status", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "fieldMinMax": false, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "gbytes" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "maxDataPoints": 827, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "diskpool_total_size_bytes{name=~\"$mayastor_diskpool\"}/(1024*1024*1024)", + "instant": false, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "DiskPool Total Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "fieldMinMax": false, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "gbytes" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 8 + }, + "id": 3, + "maxDataPoints": 827, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "diskpool_used_size_bytes{name=~\"$mayastor_diskpool\"}/(1024*1024*1024)", + "instant": false, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "DiskPool Used Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "fieldMinMax": false, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "gbytes" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 4, + "maxDataPoints": 827, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(diskpool_total_size_bytes{name=~\"$mayastor_diskpool\"}-diskpool_used_size_bytes{name=~\"$mayastor_diskpool\"})/(1024*1024*1024)", + "instant": false, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "DiskPool Available Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "iops" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 16 + }, + "id": 5, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "irate(diskpool_num_read_ops{name=~\"$mayastor_diskpool\"}[1m])", + "interval": "", + "legendFormat": "read iops", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(diskpool_num_write_ops{name=~\"$mayastor_diskpool\"}[1m])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "write iops", + "range": true, + "refId": "B" + } + ], + "title": "IOPS", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 16 + }, + "id": 6, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "irate(diskpool_bytes_read{name=~\"$mayastor_diskpool\"}[1m])", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(diskpool_bytes_written{name=~\"$mayastor_diskpool\"}[1m])", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Throughput", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "s" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 6, + "y": 24 + }, + "id": 7, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "((irate(diskpool_read_latency_us{name=~\"$mayastor_diskpool\"}[1m]))/(irate(diskpool_num_read_ops{name=~\"$mayastor_diskpool\"}[1m])))/1000000", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "((irate(diskpool_write_latency_us{name=~\"$mayastor_diskpool\"}[1m]))/(irate(diskpool_num_write_ops{name=~\"$mayastor_diskpool\"}[1m])))/1000000", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Latency", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 39, + "tags": [ + "OpenEBS", + "Mayastor" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "prometheus" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "datasource", + "options": [ ], + "query": "prometheus", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": true, + "text": [ + "pool-on-node-1" + ], + "value": [ + "pool-on-node-1" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(diskpool_status,name)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "mayastor_diskpool", + "options": [ ], + "query": { + "qryType": 1, + "query": "label_values(diskpool_status,name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { }, + "timezone": "browser", + "title": "OpenEBS / Replicated PV / Mayastor / DiskPool", + "uid": "edl0359q6u1a8f", + "version": 7, + "weekStart": "" +} diff --git a/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume-replica.json b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume-replica.json new file mode 100644 index 00000000..1081c480 --- /dev/null +++ b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume-replica.json @@ -0,0 +1,422 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 43, + "links": [ ], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "iops" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "irate(replica_num_read_ops{name=~\"$replica_name\"}[1m])", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(replica_num_write_ops{name=~\"$replica_name\"}[1m])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "IOPS", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "irate(replica_bytes_read{name=~\"$replica_name\"}[1m])", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(replica_bytes_written{name=~\"$replica_name\"}[1m])", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Throughput", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "s" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 6, + "y": 8 + }, + "id": 3, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "((irate(replica_read_latency_us{name=~\"$replica_name\"}[1m]))/(irate(replica_num_read_ops{name=~\"$replica_name\"}[1m])))/1000000", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "((irate(replica_write_latency_us{name=~\"$replica_name\"}[1m]))/(irate(replica_num_write_ops{name=~\"$replica_name\"}[1m])))/1000000", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Latency", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 39, + "tags": [ + "OpenEBS", + "Mayastor" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "prometheus" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "datasource", + "options": [ ], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(replica_num_read_ops,name)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "replica_name", + "options": [ ], + "query": { + "qryType": 1, + "query": "label_values(replica_num_read_ops,name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { }, + "timezone": "browser", + "title": "OpenEBS / Replicated PV / Mayastor / Volume Replica", + "uid": "fdl05xto1hn28e", + "version": 6, + "weekStart": "" +} diff --git a/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume.json b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume.json new file mode 100644 index 00000000..44537e86 --- /dev/null +++ b/charts/kubezero-storage/jsonnet/dashboards/openebs-mayastor-volume.json @@ -0,0 +1,422 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 42, + "links": [ ], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "iops" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "irate(volume_num_read_ops{pv_name=~\"$pv_name\"}[1m])", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(volume_num_write_ops{pv_name=~\"$pv_name\"}[1m])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "IOPS", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "irate(volume_bytes_read{pv_name=~\"$pv_name\"}[1m])", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "irate(volume_bytes_written{pv_name=~\"$pv_name\"}[1m])", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Throughput", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "s" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 6, + "y": 8 + }, + "id": 3, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.0", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": true, + "expr": "((irate(volume_read_latency_us{pv_name=~\"$pv_name\"}[1m]))/(irate(volume_num_read_ops{pv_name=~\"$pv_name\"}[1m])))/1000000", + "interval": "", + "legendFormat": "read", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "((irate(volume_write_latency_us{pv_name=~\"$pv_name\"}[1m]))/(irate(volume_num_write_ops{pv_name=~\"$pv_name\"}[1m])))/1000000", + "hide": false, + "instant": false, + "legendFormat": "write", + "range": true, + "refId": "B" + } + ], + "title": "Latency", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 39, + "tags": [ + "OpenEBS", + "Mayastor" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "prometheus" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "datasource", + "options": [ ], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": true, + "text": [ + "pvc-d070ac1c-6bb7-4ece-9893-5471c0c636a8" + ], + "value": [ + "pvc-d070ac1c-6bb7-4ece-9893-5471c0c636a8" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(volume_num_read_ops,pv_name)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "pv_name", + "options": [ ], + "query": { + "qryType": 1, + "query": "label_values(volume_num_read_ops,pv_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { }, + "timezone": "browser", + "title": "OpenEBS / Replicated PV / Mayastor / Volume", + "uid": "fdl05gxyisqo0d", + "version": 6, + "weekStart": "" +} diff --git a/charts/kubezero/values.yaml b/charts/kubezero/values.yaml index 965f7228..9cfff15a 100644 --- a/charts/kubezero/values.yaml +++ b/charts/kubezero/values.yaml @@ -64,13 +64,13 @@ storage: istio: enabled: false namespace: istio-system - targetRevision: 0.22.3-1 + targetRevision: 0.23.2 istio-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.22.3-1 + targetRevision: 0.23.2 gateway: service: {} @@ -78,7 +78,7 @@ istio-private-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.22.3-1 + targetRevision: 0.23.2 gateway: service: {} @@ -101,7 +101,7 @@ operators: metrics: enabled: false namespace: monitoring - targetRevision: 0.10.0 + targetRevision: 0.10.1 istio: grafana: {} prometheus: {}