diff --git a/jsonnet/kube-prometheus/versions.json b/jsonnet/kube-prometheus/versions.json index 6901f9c9b77b93bdb9e790f723ba16ecd660501b..5883dc1f6eef405d32503c1b11a73c6a0bc2b5f0 100644 --- a/jsonnet/kube-prometheus/versions.json +++ b/jsonnet/kube-prometheus/versions.json @@ -1,12 +1,12 @@ { - "alertmanager": "0.23.0", + "alertmanager": "0.24.0", "blackboxExporter": "0.20.0", "grafana": "8.4.4", "kubeStateMetrics": "2.4.2", "nodeExporter": "1.3.1", "prometheus": "2.34.0", "prometheusAdapter": "0.9.1", - "prometheusOperator": "0.55.0", + "prometheusOperator": "0.55.1", "kubeRbacProxy": "0.11.0", "configmapReload": "0.5.0" } diff --git a/jsonnetfile.lock.json b/jsonnetfile.lock.json index 26346d62b02f66ced66d98bebb0c264ff88ab4f0..01938bd48dd0661ac7a942ca05f807bb80552998 100644 --- a/jsonnetfile.lock.json +++ b/jsonnetfile.lock.json @@ -18,7 +18,7 @@ "subdir": "contrib/mixin" } }, - "version": "4787e71921f16af641c34e1f1c7a4dd94d6d8b0e", + "version": "be2929568f81080b20ef6812992f2e09c8dac91b", "sum": "zhLYhUNcXNkMRfJhMUX0UiOpi8TOuLmUqJfO9NFKFkg=" }, { @@ -28,7 +28,7 @@ "subdir": "grafana-mixin" } }, - "version": "bb8304c83896fe2fab58e29399a5d3f3aa171c19", + "version": "8c622c1ef626a6982e0a6353877dd02313988010", "sum": "MkjR7zCgq6MUZgjDzop574tFKoTX2OBr7DTwm1K+Ofs=" }, { @@ -58,8 +58,8 @@ "subdir": "" } }, - "version": "0f0f3dc472ff2a8cdc6a6c6f938a2c450cb493ec", - "sum": "fMsMbtYIlyPhV5lr9KluAJmiJJEjnPirh1FveQzyDaA=" + "version": "a2196d1b3493c15117550df2fd35dbdf54e4fa0e", + "sum": "QW/hop00uVdVHZ0ay2Ceogrra7qfBCvGqtuyYaoxHXY=" }, { "source": { @@ -68,7 +68,7 @@ "subdir": "lib/promgrafonnet" } }, - "version": "0f0f3dc472ff2a8cdc6a6c6f938a2c450cb493ec", + "version": "a2196d1b3493c15117550df2fd35dbdf54e4fa0e", "sum": "zv7hXGui6BfHzE9wPatHI/AGZa4A2WKo6pq7ZdqBsps=" }, { @@ -98,8 +98,8 @@ "subdir": "jsonnet/mixin" } }, - "version": "f49dc4bb80e33f0044df4915ab4e844feb30c02e", - "sum": "qZ4WgiweaE6eeKtFK60QUjLO8sf2L9Q8fgafWvDcyfY=", + "version": "90e243ea91e4f332d517b0a2c190df9d5c3026a9", + "sum": "joc3gM74r0q658bmpfTbeAr0Nce4gTBv0rf3I+2J0rQ=", "name": "prometheus-operator-mixin" }, { @@ -109,8 +109,8 @@ "subdir": "jsonnet/prometheus-operator" } }, - "version": "f49dc4bb80e33f0044df4915ab4e844feb30c02e", - "sum": "qgFgLS7/YpM5KNHoq/8eSDPg4vrCts9lI6ImGWORlEg=" + "version": "90e243ea91e4f332d517b0a2c190df9d5c3026a9", + "sum": "SmdmXrgVBxc68tkc827FD2ozO4JRwvJCEVYLgKTYWwk=" }, { "source": { @@ -119,7 +119,7 @@ "subdir": "doc/alertmanager-mixin" } }, - "version": "dd63d04a579fe8540a0c1eda4a75bbb134f50672", + "version": "a6d10bd5bc3f651e0ca04d47b981ed66e85a09a6", "sum": "iqF63VWQovIGBb7JI5oVVgMShz0dKptSzEVQQjsy+Jo=", "name": "alertmanager" }, @@ -130,7 +130,7 @@ "subdir": "docs/node-mixin" } }, - "version": "4917e1a451b07624511c83579855f98124ff1a84", + "version": "9aae303a46c3153b75e4d32b0936b40e4ee0beeb", "sum": "/SFdKggqBEmznyeGfpyEZl4rC69mMtLGEB9lG1mQhVA=" }, { @@ -140,8 +140,8 @@ "subdir": "documentation/prometheus-mixin" } }, - "version": "c901ebaf8dd1273de415f8a32617d708c4256683", - "sum": "ZjQoYhvgKwJNkg+h+m9lW3SYjnjv5Yx5btEipLhru88=", + "version": "c7be45d957dd90e605738d8b74482e7579da0db0", + "sum": "7mS7v4Tt0wypJhUrjbHNbSe5maAToU5qHFD8LsLs+jM=", "name": "prometheus" }, { @@ -151,7 +151,7 @@ "subdir": "mixin" } }, - "version": "149e0264e181ac1899a0409a7d50d78c245c18b7", + "version": "f0e673a2e4860d8cffafba4c97955171e5c6cb2b", "sum": "dBm9ML50quhu6dwTIgfNmVruMqfaUeQVCO/6EKtQLxE=", "name": "thanos-mixin" }, diff --git a/manifests/alertmanager-alertmanager.yaml b/manifests/alertmanager-alertmanager.yaml index 3ffd1ad0a32c429314bedaccdda6da1e1f6c3243..7361532ab5cb5f858ba53b3d4569242702d96014 100644 --- a/manifests/alertmanager-alertmanager.yaml +++ b/manifests/alertmanager-alertmanager.yaml @@ -6,11 +6,11 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: main namespace: monitoring spec: - image: quay.io/prometheus/alertmanager:v0.23.0 + image: quay.io/prometheus/alertmanager:v0.24.0 nodeSelector: kubernetes.io/os: linux podMetadata: @@ -19,7 +19,7 @@ spec: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 replicas: 3 resources: limits: @@ -33,4 +33,4 @@ spec: runAsNonRoot: true runAsUser: 1000 serviceAccountName: alertmanager-main - version: 0.23.0 + version: 0.24.0 diff --git a/manifests/alertmanager-podDisruptionBudget.yaml b/manifests/alertmanager-podDisruptionBudget.yaml index 8b6547777ae5b3e518b4de4d574e825797f8197d..88b03f8fe279d0267f6a033053ed7b1d1e83ba8b 100644 --- a/manifests/alertmanager-podDisruptionBudget.yaml +++ b/manifests/alertmanager-podDisruptionBudget.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: alertmanager-main namespace: monitoring spec: diff --git a/manifests/alertmanager-prometheusRule.yaml b/manifests/alertmanager-prometheusRule.yaml index 92c0966eaa66f5eea175ebfe2f6f18186cb40b18..56f453044b2630e498d359b68d693f10a1654b26 100644 --- a/manifests/alertmanager-prometheusRule.yaml +++ b/manifests/alertmanager-prometheusRule.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 prometheus: k8s role: alert-rules name: alertmanager-main-rules diff --git a/manifests/alertmanager-secret.yaml b/manifests/alertmanager-secret.yaml index e27e46df2473cd08072ffea18902c6592a6c6452..747271fb85a73f04c82538698dc992d888acaeb4 100644 --- a/manifests/alertmanager-secret.yaml +++ b/manifests/alertmanager-secret.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: alertmanager-main namespace: monitoring stringData: diff --git a/manifests/alertmanager-service.yaml b/manifests/alertmanager-service.yaml index 2e880ecc7952e9da44937861b5c64699e17f33b8..6a2e3b65b40f89702038d043460c4612b707477a 100644 --- a/manifests/alertmanager-service.yaml +++ b/manifests/alertmanager-service.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: alertmanager-main namespace: monitoring spec: diff --git a/manifests/alertmanager-serviceAccount.yaml b/manifests/alertmanager-serviceAccount.yaml index 0bf6621afd625eb849dc025a3a2d9bc12fc16c4a..20658c5aee400b5d1309afccc48cb79935c803d5 100644 --- a/manifests/alertmanager-serviceAccount.yaml +++ b/manifests/alertmanager-serviceAccount.yaml @@ -7,6 +7,6 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: alertmanager-main namespace: monitoring diff --git a/manifests/alertmanager-serviceMonitor.yaml b/manifests/alertmanager-serviceMonitor.yaml index 52deca0d6632994cea288e133aa2cc2a47206171..c98d563c6db010fb2f980def477ba89c98b9f76c 100644 --- a/manifests/alertmanager-serviceMonitor.yaml +++ b/manifests/alertmanager-serviceMonitor.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/instance: main app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.23.0 + app.kubernetes.io/version: 0.24.0 name: alertmanager-main namespace: monitoring spec: diff --git a/manifests/kubernetesControlPlane-prometheusRule.yaml b/manifests/kubernetesControlPlane-prometheusRule.yaml index 57a65e048e64204bc57470f57d77c70076d023fc..964324bf161bf85db1a087585d6e394275232943 100644 --- a/manifests/kubernetesControlPlane-prometheusRule.yaml +++ b/manifests/kubernetesControlPlane-prometheusRule.yaml @@ -651,7 +651,7 @@ spec: runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletpodstartuplatencyhigh summary: Kubelet Pod startup latency is too high. expr: | - histogram_quantile(0.99, sum(rate(kubelet_pod_worker_duration_seconds_bucket{job="kubelet", metrics_path="/metrics"}[5m])) by (instance, le)) * on(instance) group_left(node) kubelet_node_name{job="kubelet", metrics_path="/metrics"} > 60 + histogram_quantile(0.99, sum(rate(kubelet_pod_worker_duration_seconds_bucket{job="kubelet", metrics_path="/metrics"}[5m])) by (cluster, instance, le)) * on(cluster, instance) group_left(node) kubelet_node_name{job="kubelet", metrics_path="/metrics"} > 60 for: 15m labels: severity: warning diff --git a/manifests/prometheus-prometheusRule.yaml b/manifests/prometheus-prometheusRule.yaml index c0cd5559ac4f89d70346637ed8c51c737d9a26b1..d8571fe12736d19d2efd26859c535ca1c6274ea9 100644 --- a/manifests/prometheus-prometheusRule.yaml +++ b/manifests/prometheus-prometheusRule.yaml @@ -251,6 +251,18 @@ spec: for: 15m labels: severity: warning + - alert: PrometheusScrapeBodySizeLimitHit + annotations: + description: Prometheus {{$labels.namespace}}/{{$labels.pod}} has dropped + {{ printf "%.0f" $value }} targets because some targets exceeded the configured + body_size_limit. + runbook_url: https://runbooks.prometheus-operator.dev/runbooks/prometheus/prometheusscrapebodysizelimithit + summary: Prometheus has dropped some targets that exceeded body size limit. + expr: | + increase(prometheus_target_scrapes_exceeded_body_size_limit_total{job="prometheus-k8s",namespace="monitoring"}[5m]) > 0 + for: 15m + labels: + severity: warning - alert: PrometheusTargetSyncFailure annotations: description: '{{ printf "%.0f" $value }} targets in Prometheus {{$labels.namespace}}/{{$labels.pod}} diff --git a/manifests/prometheusOperator-clusterRole.yaml b/manifests/prometheusOperator-clusterRole.yaml index 3fbaa0f7e8b7031f90205c37fa778956850a0f0e..5e4b01b1541d7a7a2fcf6a24428a16f760a400c9 100644 --- a/manifests/prometheusOperator-clusterRole.yaml +++ b/manifests/prometheusOperator-clusterRole.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator rules: - apiGroups: diff --git a/manifests/prometheusOperator-clusterRoleBinding.yaml b/manifests/prometheusOperator-clusterRoleBinding.yaml index 9b7be1a778727845b0b51831c3601e35f75b6053..0aa2a03abd50daf3162f63743af06eb90dd49143 100644 --- a/manifests/prometheusOperator-clusterRoleBinding.yaml +++ b/manifests/prometheusOperator-clusterRoleBinding.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/manifests/prometheusOperator-deployment.yaml b/manifests/prometheusOperator-deployment.yaml index ac183aefd26855e6f51470a39755e9e9a3d5588b..ae0611ff423201e5936882749d904e7e1d672f0d 100644 --- a/manifests/prometheusOperator-deployment.yaml +++ b/manifests/prometheusOperator-deployment.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator namespace: monitoring spec: @@ -23,14 +23,14 @@ spec: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 spec: automountServiceAccountToken: true containers: - args: - --kubelet-service=kube-system/kubelet - - --prometheus-config-reloader=quay.io/prometheus-operator/prometheus-config-reloader:v0.55.0 - image: quay.io/prometheus-operator/prometheus-operator:v0.55.0 + - --prometheus-config-reloader=quay.io/prometheus-operator/prometheus-config-reloader:v0.55.1 + image: quay.io/prometheus-operator/prometheus-operator:v0.55.1 name: prometheus-operator ports: - containerPort: 8080 diff --git a/manifests/prometheusOperator-prometheusRule.yaml b/manifests/prometheusOperator-prometheusRule.yaml index 504e4e9925c561489e6b66a4363ef6ba53244c37..e8a1ca9dd841eeddcb8d12eb8ec222a38fba7b3d 100644 --- a/manifests/prometheusOperator-prometheusRule.yaml +++ b/manifests/prometheusOperator-prometheusRule.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 prometheus: k8s role: alert-rules name: prometheus-operator-rules @@ -32,7 +32,7 @@ spec: runbook_url: https://runbooks.prometheus-operator.dev/runbooks/prometheus-operator/prometheusoperatorwatcherrors summary: Errors while performing watch operations in controller. expr: | - (sum by (controller,namespace) (rate(prometheus_operator_watch_operations_failed_total{job="prometheus-operator",namespace="monitoring"}[10m])) / sum by (controller,namespace) (rate(prometheus_operator_watch_operations_total{job="prometheus-operator",namespace="monitoring"}[10m]))) > 0.4 + (sum by (controller,namespace) (rate(prometheus_operator_watch_operations_failed_total{job="prometheus-operator",namespace="monitoring"}[5m])) / sum by (controller,namespace) (rate(prometheus_operator_watch_operations_total{job="prometheus-operator",namespace="monitoring"}[5m]))) > 0.4 for: 15m labels: severity: warning diff --git a/manifests/prometheusOperator-service.yaml b/manifests/prometheusOperator-service.yaml index 6bc6962035920f688d6728125237f966ed1699f8..5f31ee330a2f8a727d0f2ca1e32d60f2a885d1f8 100644 --- a/manifests/prometheusOperator-service.yaml +++ b/manifests/prometheusOperator-service.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator namespace: monitoring spec: diff --git a/manifests/prometheusOperator-serviceAccount.yaml b/manifests/prometheusOperator-serviceAccount.yaml index c5f4665778d39200c7a642f6c337d10564e9f6a2..c88e1959b44939bfc05aaadf8ffa5f171321c0be 100644 --- a/manifests/prometheusOperator-serviceAccount.yaml +++ b/manifests/prometheusOperator-serviceAccount.yaml @@ -6,6 +6,6 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator namespace: monitoring diff --git a/manifests/prometheusOperator-serviceMonitor.yaml b/manifests/prometheusOperator-serviceMonitor.yaml index fa791f2c0a6681a03fa993653256b2f335b4ec94..52a145e62bd536d43847c970cfeb2ab0ba177017 100644 --- a/manifests/prometheusOperator-serviceMonitor.yaml +++ b/manifests/prometheusOperator-serviceMonitor.yaml @@ -5,7 +5,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 name: prometheus-operator namespace: monitoring spec: @@ -21,4 +21,4 @@ spec: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: kube-prometheus - app.kubernetes.io/version: 0.55.0 + app.kubernetes.io/version: 0.55.1 diff --git a/manifests/setup/0alertmanagerConfigCustomResourceDefinition.yaml b/manifests/setup/0alertmanagerConfigCustomResourceDefinition.yaml index 948386a81fff56df2c834dac4cf751bec324c7fd..cad11e62cfa34c4080748d67dd69b698927ec830 100644 --- a/manifests/setup/0alertmanagerConfigCustomResourceDefinition.yaml +++ b/manifests/setup/0alertmanagerConfigCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: alertmanagerconfigs.monitoring.coreos.com spec: diff --git a/manifests/setup/0alertmanagerCustomResourceDefinition.yaml b/manifests/setup/0alertmanagerCustomResourceDefinition.yaml index 42b416df3059c807a8e7144dabd77d916e946dd7..978306f26e7f088507759220dab40a49215de75b 100644 --- a/manifests/setup/0alertmanagerCustomResourceDefinition.yaml +++ b/manifests/setup/0alertmanagerCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: alertmanagers.monitoring.coreos.com spec: @@ -973,14 +973,14 @@ spec: alertmanagerConfiguration: description: 'EXPERIMENTAL: alertmanagerConfiguration specifies the global Alertmanager configuration. If defined, it takes precedence - over the `configSecret` field. This field may change in future releases. - The specified global alertmanager config will not force add a namespace - label in routes and inhibitRules.' + over the `configSecret` field. This field may change in future releases.' properties: name: description: The name of the AlertmanagerConfig resource which - holds the global configuration. It must be in the same namespace - as the Alertmanager. + is used to generate the global configuration. It must be defined + in the same namespace as the Alertmanager object. The operator + will not enforce a `namespace` label for routes and inhibition + rules. minLength: 1 type: string type: object @@ -1010,10 +1010,15 @@ spec: type: string type: array configSecret: - description: ConfigSecret is the name of a Kubernetes Secret in the - same namespace as the Alertmanager object, which contains configuration - for this Alertmanager instance. Defaults to 'alertmanager-<alertmanager-name>' - The secret is mounted into /etc/alertmanager/config. + description: "ConfigSecret is the name of a Kubernetes Secret in the + same namespace as the Alertmanager object, which contains the configuration + for this Alertmanager instance. If empty, it defaults to 'alertmanager-<alertmanager-name>'. + \n The Alertmanager configuration should be available under the + `alertmanager.yaml` key. Additional keys from the original secret + are copied to the generated secret. \n If either the secret or the + `alertmanager.yaml` key is missing, the operator provisions an Alertmanager + configuration with one empty receiver (effectively dropping alert + notifications)." type: string containers: description: 'Containers allows injecting additional containers. This @@ -3917,13 +3922,13 @@ spec: automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource - only allows two specific types of objects, DataSourceRef allows - any non-core object, as well as PersistentVolumeClaim + only allows two specific types of objects, DataSourceRef + allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values - (dropping them), DataSourceRef preserves all values, - and generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + (dropping them), DataSourceRef preserves all values, + and generates an error if a disallowed value is + specified. (Alpha) Using this field requires the + AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource @@ -4140,11 +4145,11 @@ spec: and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as well - as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves + DataSourceRef allows any non-core object, as well as + PersistentVolumeClaim objects. * While DataSource ignores + disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value - is specified. (Alpha) Using this field requires the + is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: @@ -4474,10 +4479,10 @@ spec: description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway - tells the scheduler to schedule the pod in any location, but + tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" for - an incoming pod if and only if every possible node assignment + the skew. A constraint is considered "Unsatisfiable" for an + incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 @@ -4929,18 +4934,17 @@ spec: pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity - \ tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on the - connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the lifecycle - of an individual pod. \n 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. \n A - pod can use both types of ephemeral volumes and persistent - volumes at the same time." + tracking are needed, c) the storage driver is specified through + a storage class, and d) the storage driver supports dynamic + volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource + for more information on the connection between this volume + type and PersistentVolumeClaim). \n Use PersistentVolumeClaim + or one of the vendor-specific APIs for volumes that persist + for longer than the lifecycle of an individual pod. \n 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. \n A pod can use both types of + ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to @@ -5028,13 +5032,13 @@ spec: other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as - well as PersistentVolumeClaim objects. * While - DataSource ignores disallowed values (dropping - them), DataSourceRef preserves all values, and - generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + DataSourceRef allows any non-core object, as well + as PersistentVolumeClaim objects. * While DataSource + ignores disallowed values (dropping them), DataSourceRef + preserves all values, and generates an error if + a disallowed value is specified. (Alpha) Using + this field requires the AnyVolumeDataSource feature + gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource diff --git a/manifests/setup/0podmonitorCustomResourceDefinition.yaml b/manifests/setup/0podmonitorCustomResourceDefinition.yaml index 9e448d3aa0f468f16c7ccbabcd09c9f7efcc1a27..9bc826f5fdbc1ef1c8720fbce140412a1a790bd6 100644 --- a/manifests/setup/0podmonitorCustomResourceDefinition.yaml +++ b/manifests/setup/0podmonitorCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: podmonitors.monitoring.coreos.com spec: diff --git a/manifests/setup/0probeCustomResourceDefinition.yaml b/manifests/setup/0probeCustomResourceDefinition.yaml index 34385440fd1e9f2a1234239c9f84981769010e68..14260d4a5aa989cd9051eb202ed8bff04d8be811 100644 --- a/manifests/setup/0probeCustomResourceDefinition.yaml +++ b/manifests/setup/0probeCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: probes.monitoring.coreos.com spec: diff --git a/manifests/setup/0prometheusCustomResourceDefinition.yaml b/manifests/setup/0prometheusCustomResourceDefinition.yaml index 81ce68c73332deebe289ed1a5c7890605e7919d4..ae37bb13fc81f9c25915d444fe56507c97bd9968 100644 --- a/manifests/setup/0prometheusCustomResourceDefinition.yaml +++ b/manifests/setup/0prometheusCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: prometheuses.monitoring.coreos.com spec: @@ -2678,6 +2678,7 @@ spec: monitors and probes. This is an experimental feature, this behaviour could change or be removed in the future. Only valid in Prometheus versions 2.28.0 and newer.' + pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ type: string enforcedLabelLimit: description: Per-scrape limit on number of labels that will be accepted @@ -2704,8 +2705,8 @@ spec: description: "EnforcedNamespaceLabel If set, a label will be added to \n 1. all user-metrics (created by `ServiceMonitor`, `PodMonitor` and `Probe` objects) and 2. in all `PrometheusRule` objects (except - the ones excluded in `prometheusRulesExcludedFromEnforce`) to * - alerting & recording rules and * the metrics used in their expressions + the ones excluded in `prometheusRulesExcludedFromEnforce`) to * + alerting & recording rules and * the metrics used in their expressions (`expr`). \n Label name is this field's value. Label value is the namespace of the created object (mentioned above)." type: string @@ -2732,6 +2733,42 @@ spec: evaluationInterval: description: 'Interval between consecutive evaluations. Default: `1m`' type: string + excludedFromEnforcement: + description: List of references to PodMonitor, ServiceMonitor, Probe + and PrometheusRule objects to be excluded from enforcing a namespace + label of origin. Applies only if enforcedNamespaceLabel set to true. + items: + description: ObjectReference references a PodMonitor, ServiceMonitor, + Probe or PrometheusRule object. + properties: + group: + default: monitoring.coreos.com + description: Group of the referent. When not specified, it defaults + to `monitoring.coreos.com` + enum: + - monitoring.coreos.com + type: string + name: + description: Name of the referent. When not set, all resources + are matched. + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + minLength: 1 + type: string + resource: + description: Resource of the referent. + enum: + - prometheusrules + - servicemonitors + - podmonitors + - probes + type: string + required: + - namespace + - resource + type: object + type: array externalLabels: additionalProperties: type: string @@ -4265,10 +4302,11 @@ spec: will _not_ be added when value is set to empty string (`""`). type: string prometheusRulesExcludedFromEnforce: - description: PrometheusRulesExcludedFromEnforce - list of prometheus + description: 'PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels. Works only if enforcedNamespaceLabel set to true. Make sure both - ruleNamespace and ruleName are set for each pair + ruleNamespace and ruleName are set for each pair. Deprecated: use + excludedFromEnforcement instead.' items: description: PrometheusRuleExcludeConfig enables users to configure excluded PrometheusRule names and their namespaces to be ignored @@ -5192,8 +5230,8 @@ spec: hours days weeks years). type: string retentionSize: - description: 'Maximum amount of disk space used by blocks. Supported - units: B, KB, MB, GB, TB, PB, EB. Ex: `512MB`.' + description: Maximum amount of disk space used by blocks. + pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ type: string routePrefix: description: The route prefix Prometheus registers HTTP handlers for. @@ -5731,13 +5769,13 @@ spec: automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource - only allows two specific types of objects, DataSourceRef allows - any non-core object, as well as PersistentVolumeClaim + only allows two specific types of objects, DataSourceRef + allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values - (dropping them), DataSourceRef preserves all values, - and generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + (dropping them), DataSourceRef preserves all values, + and generates an error if a disallowed value is + specified. (Alpha) Using this field requires the + AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource @@ -5954,11 +5992,11 @@ spec: and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as well - as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves + DataSourceRef allows any non-core object, as well as + PersistentVolumeClaim objects. * While DataSource ignores + disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value - is specified. (Alpha) Using this field requires the + is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: @@ -6603,10 +6641,10 @@ spec: description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway - tells the scheduler to schedule the pod in any location, but + tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" for - an incoming pod if and only if every possible node assignment + the skew. A constraint is considered "Unsatisfiable" for an + incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 @@ -7058,18 +7096,17 @@ spec: pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity - \ tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on the - connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the lifecycle - of an individual pod. \n 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. \n A - pod can use both types of ephemeral volumes and persistent - volumes at the same time." + tracking are needed, c) the storage driver is specified through + a storage class, and d) the storage driver supports dynamic + volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource + for more information on the connection between this volume + type and PersistentVolumeClaim). \n Use PersistentVolumeClaim + or one of the vendor-specific APIs for volumes that persist + for longer than the lifecycle of an individual pod. \n 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. \n A pod can use both types of + ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to @@ -7157,13 +7194,13 @@ spec: other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as - well as PersistentVolumeClaim objects. * While - DataSource ignores disallowed values (dropping - them), DataSourceRef preserves all values, and - generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + DataSourceRef allows any non-core object, as well + as PersistentVolumeClaim objects. * While DataSource + ignores disallowed values (dropping them), DataSourceRef + preserves all values, and generates an error if + a disallowed value is specified. (Alpha) Using + this field requires the AnyVolumeDataSource feature + gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource diff --git a/manifests/setup/0prometheusruleCustomResourceDefinition.yaml b/manifests/setup/0prometheusruleCustomResourceDefinition.yaml index 1dd024388bd135edb9d0fc887d396a67a5c67518..de8ec2357be8d77e0f53fe05af665ce7b4352bde 100644 --- a/manifests/setup/0prometheusruleCustomResourceDefinition.yaml +++ b/manifests/setup/0prometheusruleCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: prometheusrules.monitoring.coreos.com spec: diff --git a/manifests/setup/0servicemonitorCustomResourceDefinition.yaml b/manifests/setup/0servicemonitorCustomResourceDefinition.yaml index 90fe8340d2b50e9bf778d13b2b447b1f9d2de3df..0fbc1aa6f3e2398bbdfcb3fd4abbdf43b098f1e9 100644 --- a/manifests/setup/0servicemonitorCustomResourceDefinition.yaml +++ b/manifests/setup/0servicemonitorCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: servicemonitors.monitoring.coreos.com spec: diff --git a/manifests/setup/0thanosrulerCustomResourceDefinition.yaml b/manifests/setup/0thanosrulerCustomResourceDefinition.yaml index 808f1aae25a6a78089bb1f3c43ccc3a5d2516f09..8af132f00398a807fc2ff326a82eec43aefeb249 100644 --- a/manifests/setup/0thanosrulerCustomResourceDefinition.yaml +++ b/manifests/setup/0thanosrulerCustomResourceDefinition.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.2 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: thanosrulers.monitoring.coreos.com spec: @@ -2168,6 +2168,42 @@ spec: evaluationInterval: description: Interval between consecutive evaluations. type: string + excludedFromEnforcement: + description: List of references to PrometheusRule objects to be excluded + from enforcing a namespace label of origin. Applies only if enforcedNamespaceLabel + set to true. + items: + description: ObjectReference references a PodMonitor, ServiceMonitor, + Probe or PrometheusRule object. + properties: + group: + default: monitoring.coreos.com + description: Group of the referent. When not specified, it defaults + to `monitoring.coreos.com` + enum: + - monitoring.coreos.com + type: string + name: + description: Name of the referent. When not set, all resources + are matched. + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + minLength: 1 + type: string + resource: + description: Resource of the referent. + enum: + - prometheusrules + - servicemonitors + - podmonitors + - probes + type: string + required: + - namespace + - resource + type: object + type: array externalPrefix: description: The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary @@ -3639,10 +3675,11 @@ spec: description: Priority class assigned to the Pods type: string prometheusRulesExcludedFromEnforce: - description: PrometheusRulesExcludedFromEnforce - list of Prometheus + description: 'PrometheusRulesExcludedFromEnforce - list of Prometheus rules to be excluded from enforcing of adding namespace labels. Works only if enforcedNamespaceLabel set to true. Make sure both - ruleNamespace and ruleName are set for each pair + ruleNamespace and ruleName are set for each pair Deprecated: use + excludedFromEnforcement instead.' items: description: PrometheusRuleExcludeConfig enables users to configure excluded PrometheusRule names and their namespaces to be ignored @@ -4105,13 +4142,13 @@ spec: automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource - only allows two specific types of objects, DataSourceRef allows - any non-core object, as well as PersistentVolumeClaim + only allows two specific types of objects, DataSourceRef + allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values - (dropping them), DataSourceRef preserves all values, - and generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + (dropping them), DataSourceRef preserves all values, + and generates an error if a disallowed value is + specified. (Alpha) Using this field requires the + AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource @@ -4328,11 +4365,11 @@ spec: and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as well - as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves + DataSourceRef allows any non-core object, as well as + PersistentVolumeClaim objects. * While DataSource ignores + disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value - is specified. (Alpha) Using this field requires the + is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.' properties: apiGroup: @@ -4656,10 +4693,10 @@ spec: description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway - tells the scheduler to schedule the pod in any location, but + tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" for - an incoming pod if and only if every possible node assignment + the skew. A constraint is considered "Unsatisfiable" for an + incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 @@ -5085,18 +5122,17 @@ spec: pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity - \ tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on the - connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the lifecycle - of an individual pod. \n 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. \n A - pod can use both types of ephemeral volumes and persistent - volumes at the same time." + tracking are needed, c) the storage driver is specified through + a storage class, and d) the storage driver supports dynamic + volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource + for more information on the connection between this volume + type and PersistentVolumeClaim). \n Use PersistentVolumeClaim + or one of the vendor-specific APIs for volumes that persist + for longer than the lifecycle of an individual pod. \n 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. \n A pod can use both types of + ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to @@ -5184,13 +5220,13 @@ spec: other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, - DataSourceRef allows any non-core object, as - well as PersistentVolumeClaim objects. * While - DataSource ignores disallowed values (dropping - them), DataSourceRef preserves all values, and - generates an error if a disallowed value is specified. - (Alpha) Using this field requires the AnyVolumeDataSource - feature gate to be enabled.' + DataSourceRef allows any non-core object, as well + as PersistentVolumeClaim objects. * While DataSource + ignores disallowed values (dropping them), DataSourceRef + preserves all values, and generates an error if + a disallowed value is specified. (Alpha) Using + this field requires the AnyVolumeDataSource feature + gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource