@@ -2,9 +2,9 @@ apiVersion: apiextensions.k8s.io/v1
22kind: CustomResourceDefinition
33metadata:
44 annotations:
5- controller-gen.kubebuilder.io/version: v0.19.0
5+ controller-gen.kubebuilder.io/version: v0.20.1
66 observability.openshift.io/api-support: TechPreview
7- operator.prometheus.io/version: 0.90.1 -rhobs1
7+ operator.prometheus.io/version: 0.91.0 -rhobs1
88 creationTimestamp: null
99 labels:
1010 app.kubernetes.io/part-of: observability-operator
@@ -6261,6 +6261,12 @@ spec:
62616261 - key
62626262 type: object
62636263 x-kubernetes-map-type: atomic
6264+ externalId:
6265+ description: |-
6266+ externalId defines the external ID used when assuming an AWS role. Can only be used with roleArn.
6267+ It requires Prometheus >= v3.11.0 or Alertmanager >= v0.33.0. Currently not supported by Thanos.
6268+ minLength: 1
6269+ type: string
62646270 profile:
62656271 description: profile defines the named AWS profile used
62666272 to authenticate.
@@ -6305,6 +6311,9 @@ spec:
63056311 It requires Prometheus >= v2.54.0.
63066312 type: boolean
63076313 type: object
6314+ x-kubernetes-validations:
6315+ - message: externalId can only be used when roleArn is specified
6316+ rule: '!has(self.externalId) || has(self.roleArn)'
63086317 tlsConfig:
63096318 description: tlsConfig to use for the URL.
63106319 properties:
@@ -7194,7 +7203,8 @@ spec:
71947203 matches all namespaces. A null label selector matches the current
71957204 namespace only.
71967205
7197- Note that the ScrapeConfig custom resource definition is currently at Alpha level.
7206+ Note that the ScrapeConfig custom resource definition is currently at Alpha level
7207+ and will be graduated to Beta in a future release.
71987208 properties:
71997209 matchExpressions:
72007210 description: matchExpressions is a list of label selector requirements.
@@ -7253,7 +7263,8 @@ spec:
72537263 of the custom resource definition. It is recommended to use
72547264 `spec.additionalScrapeConfigs` instead.
72557265
7256- Note that the ScrapeConfig custom resource definition is currently at Alpha level.
7266+ Note that the ScrapeConfig custom resource definition is currently at Alpha level
7267+ and will be graduated to Beta in a future release.
72577268 properties:
72587269 matchExpressions:
72597270 description: matchExpressions is a list of label selector requirements.
@@ -7733,6 +7744,54 @@ spec:
77337744 See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id for more details.
77347745 minLength: 1
77357746 type: string
7747+ shardingStrategy:
7748+ description: |-
7749+ shardingStrategy defines the sharding strategy for distributing scraped targets across Prometheus shards.
7750+
7751+ When not defined, the operator defaults to the 'Address' mode which distributes
7752+ targets based on a hash of the target address.
7753+ properties:
7754+ mode:
7755+ description: |-
7756+ mode defines the sharding mode. Can be 'Address' or 'Topology'.
7757+
7758+ 'Address' is the default mode and distributes targets across shards
7759+ based on a hash of the target address.
7760+
7761+ 'Topology' enables zone-aware sharding where each shard is assigned to a
7762+ specific topology zone and only scrapes targets in that zone.
7763+ (Alpha) Using the 'Topology' mode requires the `PrometheusTopologySharding`
7764+ feature gate to be enabled.
7765+ enum:
7766+ - Address
7767+ - Topology
7768+ type: string
7769+ topology:
7770+ description: |-
7771+ topology defines the configuration for topology-aware sharding.
7772+ This field is only valid when mode is set to 'Topology'.
7773+ properties:
7774+ externalLabelName:
7775+ description: |-
7776+ externalLabelName defines the name of the Prometheus external label used
7777+ to communicate the topology zone assigned to the Prometheus instance.
7778+ If not defined, it defaults to "zone".
7779+ If set to the empty string, no external label is added to the Prometheus configuration.
7780+ type: string
7781+ values:
7782+ description: |-
7783+ values defines the list of topology values (e.g. zone names) to be used
7784+ for sharding. The configured number of shards must be greater than or
7785+ equal to the number of values.
7786+ items:
7787+ type: string
7788+ type: array
7789+ x-kubernetes-list-type: atomic
7790+ type: object
7791+ type: object
7792+ x-kubernetes-validations:
7793+ - message: topology can only be defined when mode is set to 'Topology'
7794+ rule: '!has(self.topology) || (has(self.mode) && self.mode == ''Topology'')'
77367795 shards:
77377796 description: |-
77387797 shards defines the number of shards to distribute the scraped targets onto.
@@ -11306,6 +11365,14 @@ spec:
1130611365 rule: '!(has(self.mode) && self.mode == ''DaemonSet'' && has(self.serviceMonitorNamespaceSelector))'
1130711366 - message: additionalScrapeConfigs cannot be set when mode is DaemonSet
1130811367 rule: '!(has(self.mode) && self.mode == ''DaemonSet'' && has(self.additionalScrapeConfigs))'
11368+ - message: shardingStrategy cannot be set when mode is DaemonSet
11369+ rule: '!(has(self.mode) && self.mode == ''DaemonSet'' && has(self.shardingStrategy))'
11370+ - message: shards must be greater than or equal to the number of topology
11371+ values when sharding strategy mode is Topology
11372+ rule: '!has(self.shardingStrategy) || !has(self.shardingStrategy.mode)
11373+ || self.shardingStrategy.mode != ''Topology'' || !has(self.shardingStrategy.topology)
11374+ || !has(self.shardingStrategy.topology.values) || self.shardingStrategy.topology.values.size()
11375+ == 0 || (has(self.shards) ? self.shards : 1) >= self.shardingStrategy.topology.values.size()'
1130911376 status:
1131011377 description: |-
1131111378 status defines the most recent observed status of the Prometheus cluster. Read-only.
0 commit comments