diff --git a/DEPENDENCY_CONSTRAINTS.md b/DEPENDENCY_CONSTRAINTS.md index 6acb7124a..776587398 100644 --- a/DEPENDENCY_CONSTRAINTS.md +++ b/DEPENDENCY_CONSTRAINTS.md @@ -1,18 +1,18 @@ # Dependency Constraints -This document describes the constraints and pinned dependencies in this project. +This document describes how we manage dependencies for this project. -## Pinned Dependencies +## Forked OpenShift API (`github.com/openshift/api`) -### OpenShift API (`github.com/openshift/api`) +This project depends on 2 versions of `github.com/openshift/api`: +* The [canonical version](https://github.com/openshift/api). +* A [forked version](https://github.com/rhobs/openshift-api). -**Current Version:** `v0.0.0-20240404200104-96ed2d49b255` - -**Why Pinned:** The observability-operator needs to support both OpenShift console API `v1` and `v1alpha1` for backward compatibility: -- OpenShift >= 4.17 uses `console/v1` API +**Why Forked:** The observability-operator needs to support both OpenShift console API `v1` and `v1alpha1` for backward compatibility: +- OpenShift >= 4.17 uses `console/v1` API - OpenShift < 4.17 uses `console/v1alpha1` API -Newer versions of `github.com/openshift/api` (after April 2024) have removed the `console/v1alpha1` API, breaking compatibility with older OpenShift versions. +Newer versions of `github.com/openshift/api` (after April 2024) have removed the `console/v1alpha1` API, breaking compatibility with older OpenShift versions. To continue supporting older versions, we forked the library under (https://github.com/rhobs/openshift-api) using the last commit including the `v1alpha1` API and renaming the Go module in `go.mod` to `github.com/rhobs/openshift-api`. **Impact:** The codebase maintains dual API support with runtime version detection to create the appropriate Console Plugin resources. @@ -23,37 +23,14 @@ Newer versions of `github.com/openshift/api` (after April 2024) have removed the - `pkg/operator/scheme.go` - API scheme registration - All uiplugin package files using `osv1alpha1` imports -## Safe to Update Dependencies - -The following dependencies can be safely updated: -- Kubernetes API packages (`k8s.io/*`) -- Controller Runtime (`sigs.k8s.io/controller-runtime`) -- Prometheus packages (`github.com/prometheus/*`) -- RHOBS Prometheus Operator (`github.com/rhobs/obo-prometheus-operator`) -- Go standard library extensions (`golang.org/x/*`) -- Utility libraries (`github.com/go-logr/logr`, `github.com/google/go-cmp`, etc.) - ## Updating Dependencies -To update dependencies safely: - -1. **Individual updates:** Update specific packages excluding openshift/api: - ```bash - go get -u k8s.io/api k8s.io/apimachinery k8s.io/client-go - go get -u sigs.k8s.io/controller-runtime - go get -u github.com/rhobs/obo-prometheus-operator@v0.83.0-rhobs1 - ``` - -2. **Avoid bulk updates:** Don't use `go get -u ./...` as it will try to update openshift/api - -3. **Always test:** Run `make test-unit` and `make build` after each update - -4. **Fix go.sum:** Run `go mod tidy` after updates to fix missing entries +Dependabot takes care of dependency updates, the configuration is located at `.github/dependabot.yml`. ## Future Considerations -When OpenShift < 4.17 support is no longer needed: -1. Remove `console/v1alpha1` API usage -2. Unpin `github.com/openshift/api` -3. Remove dual API support code -4. Update this document \ No newline at end of file +When OpenShift < 4.17 support is no longer needed, we can: +1. Remove `console/v1alpha1` API usage. +2. Remove dual API support code. +3. Remove dependency on `github.com/rhobs/openshift-api` +4. Update this document diff --git a/Makefile b/Makefile index 50d60893c..97d89d65c 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,9 @@ CATALOG_TEMP := $(shell mktemp -d) ## Development +.PHONY: all +all: lint test-unit operator-image bundle-image + .PHONY: test-unit test-unit: go test -cover ./cmd/... ./pkg/... diff --git a/bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml b/bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml index 6523bd099..1660efdd3 100644 --- a/bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml +++ b/bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -1085,6 +1085,14 @@ spec: This is used for SMTP AUTH when the server requires authentication. minLength: 1 type: string + forceImplicitTLS: + description: |- + forceImplicitTLS defines whether to force use of implicit TLS (direct TLS connection) for better security. + true: force use of implicit TLS (direct TLS connection on any port) + false: force disable implicit TLS (use explicit TLS/STARTTLS if required) + nil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility + It requires Alertmanager >= v0.31.0. + type: boolean from: description: |- from defines the sender address for email notifications. @@ -7292,6 +7300,13 @@ spec: linkNames enables automatic linking of channel names and usernames in the message. When true, @channel and @username will be converted to clickable links. type: boolean + messageText: + description: |- + messageText defines text content of the Slack message. + If set, this is sent as the top-level 'text' field in the Slack payload. + It requires Alertmanager >= v0.31.0. + minLength: 1 + type: string mrkdwnIn: description: |- mrkdwnIn defines which fields should be parsed as Slack markdown. diff --git a/bundle/manifests/monitoring.rhobs_alertmanagers.yaml b/bundle/manifests/monitoring.rhobs_alertmanagers.yaml index aca3c07be..c2b45ff70 100644 --- a/bundle/manifests/monitoring.rhobs_alertmanagers.yaml +++ b/bundle/manifests/monitoring.rhobs_alertmanagers.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: Experimental-SSA - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -2073,6 +2073,14 @@ spec: LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. type: string + forceImplicitTLS: + description: |- + forceImplicitTLS defines whether to force use of implicit TLS (direct TLS connection) for better security. + true: force use of implicit TLS (direct TLS connection on any port) + false: force disable implicit TLS (use explicit TLS/STARTTLS if required) + nil (default): auto-detect based on port (465=implicit, other=explicit) for backward compatibility + It requires Alertmanager >= v0.31.0. + type: boolean from: description: from defines the default SMTP From header field. @@ -2890,14 +2898,20 @@ spec: type: string containers: description: |- - containers allows injecting additional containers. This is meant to - allow adding an authentication proxy to an Alertmanager pod. - Containers described here modify an operator generated container if they - share the same name and modifications are done via a strategic merge - patch. The current container names are: `alertmanager` and - `config-reloader`. 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. + containers allows injecting additional containers or modifying operator + generated containers. This can be used to allow adding an authentication + proxy to the Pods or to change the behavior of an operator generated + container. Containers described here modify an operator generated + 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: + * `alertmanager` + * `config-reloader` + * `thanos-sidecar` + + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -3765,7 +3779,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -4581,15 +4597,21 @@ spec: type: array initContainers: description: |- - initContainers allows adding initContainers to the pod definition. Those can be used to e.g. - fetch secrets for injection into the Alertmanager configuration from external sources. Any - errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ - InitContainers described here modify an operator - generated init containers if they share the same name and modifications are - done via a strategic merge patch. The current init container name is: - `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. + initContainers allows injecting initContainers to the Pod definition. Those + can be used to e.g. fetch secrets for injection into the Prometheus + configuration from external sources. Any errors during the execution of + an initContainer will lead to a restart of the Pod. More info: + https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ + InitContainers described here modify an operator generated init + 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 which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -5457,7 +5479,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -6347,6 +6371,11 @@ spec: and the actual ExternalURL is still true, but the server serves requests under a different route prefix. For example for use with `kubectl proxy`. type: string + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string secrets: description: |- secrets is a list of Secrets in the same namespace as the Alertmanager @@ -6782,7 +6811,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -7037,7 +7066,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -7193,9 +7222,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -7227,9 +7254,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -7362,9 +7387,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -8256,7 +8282,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -9135,6 +9161,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/bundle/manifests/monitoring.rhobs_podmonitors.yaml b/bundle/manifests/monitoring.rhobs_podmonitors.yaml index a6407faf6..1b1b7b550 100644 --- a/bundle/manifests/monitoring.rhobs_podmonitors.yaml +++ b/bundle/manifests/monitoring.rhobs_podmonitors.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator diff --git a/bundle/manifests/monitoring.rhobs_probes.yaml b/bundle/manifests/monitoring.rhobs_probes.yaml index 83148217c..96c761d11 100644 --- a/bundle/manifests/monitoring.rhobs_probes.yaml +++ b/bundle/manifests/monitoring.rhobs_probes.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator diff --git a/bundle/manifests/monitoring.rhobs_prometheusagents.yaml b/bundle/manifests/monitoring.rhobs_prometheusagents.yaml index 2c8b6b4cc..a9b428f47 100644 --- a/bundle/manifests/monitoring.rhobs_prometheusagents.yaml +++ b/bundle/manifests/monitoring.rhobs_prometheusagents.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -1478,9 +1478,8 @@ spec: * `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. + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -2348,7 +2347,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -3386,7 +3387,7 @@ spec: initContainers: description: |- initContainers allows injecting initContainers to the Pod definition. Those - can be used to e.g. fetch secrets for injection into the Prometheus + can be used to e.g. fetch secrets for injection into the Prometheus configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -3397,9 +3398,9 @@ spec: 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. + Overriding init containers which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -4267,7 +4268,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -6482,9 +6485,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -6699,6 +6704,11 @@ spec: If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 type: integer + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string scrapeClasses: description: |- scrapeClasses defines the list of scrape classes to expose to scraping objects such as @@ -7922,7 +7932,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8177,7 +8187,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8333,9 +8343,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -8367,9 +8375,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -8505,9 +8511,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -9665,7 +9672,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -10544,6 +10551,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/bundle/manifests/monitoring.rhobs_prometheuses.yaml b/bundle/manifests/monitoring.rhobs_prometheuses.yaml index 2e4b3d330..2787f096c 100644 --- a/bundle/manifests/monitoring.rhobs_prometheuses.yaml +++ b/bundle/manifests/monitoring.rhobs_prometheuses.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: Experimental-SSA - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -2229,9 +2229,8 @@ spec: * `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. + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -3099,7 +3098,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -4179,7 +4180,7 @@ spec: initContainers: description: |- initContainers allows injecting initContainers to the Pod definition. Those - can be used to e.g. fetch secrets for injection into the Prometheus + can be used to e.g. fetch secrets for injection into the Prometheus configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -4190,9 +4191,9 @@ spec: 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. + Overriding init containers which are managed by the operator require + careful testing, especially when upgrading to a new version of the + operator. items: description: A single application container that you want to run within a pod. @@ -5060,7 +5061,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -8072,9 +8075,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -8434,6 +8439,11 @@ spec: If you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit. format: int64 type: integer + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string scrapeClasses: description: |- scrapeClasses defines the list of scrape classes to expose to scraping objects such as @@ -9695,7 +9705,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -9950,7 +9960,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -10106,9 +10116,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -10140,9 +10148,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -10326,7 +10332,7 @@ spec: description: |- grpcServerTlsConfig defines the TLS parameters for the gRPC server providing the StoreAPI. - Note: Currently only the `caFile`, `certFile`, and `keyFile` fields are supported. + Note: Currently only the `minVersion`, `caFile`, `certFile`, and `keyFile` fields are supported. properties: ca: description: ca defines the Certificate authority used when @@ -10802,9 +10808,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -11962,7 +11969,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -12841,6 +12848,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/bundle/manifests/monitoring.rhobs_prometheusrules.yaml b/bundle/manifests/monitoring.rhobs_prometheusrules.yaml index b1aa455e1..479083547 100644 --- a/bundle/manifests/monitoring.rhobs_prometheusrules.yaml +++ b/bundle/manifests/monitoring.rhobs_prometheusrules.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator diff --git a/bundle/manifests/monitoring.rhobs_scrapeconfigs.yaml b/bundle/manifests/monitoring.rhobs_scrapeconfigs.yaml index 0a5ff4395..bceffc8b8 100644 --- a/bundle/manifests/monitoring.rhobs_scrapeconfigs.yaml +++ b/bundle/manifests/monitoring.rhobs_scrapeconfigs.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -1685,7 +1685,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the DigitalOcean API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -2125,7 +2125,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the DigitalOcean API. properties: ca: description: ca defines the Certificate authority used when @@ -2354,7 +2354,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Docker daemon. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -2460,6 +2460,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -2482,8 +2483,9 @@ spec: HTTP 3xx redirects. type: boolean host: - description: host defines the address of the docker daemon + description: host defines the address of the docker daemon. minLength: 1 + pattern: ^[a-zA-Z][a-zA-Z0-9+.-]*://.+$ type: string hostNetworkingHost: description: hostNetworkingHost defines the host to use if the @@ -2892,7 +2894,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Docker daemon. properties: ca: description: ca defines the Certificate authority used when @@ -3072,7 +3074,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Docker Swarm API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -3183,6 +3185,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -3614,7 +3617,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Docker Swarm daemon. properties: ca: description: ca defines the Certificate authority used when @@ -3840,6 +3843,7 @@ spec: properties: name: description: name of the Filter. + minLength: 1 type: string values: description: values defines values to filter on. @@ -3963,7 +3967,7 @@ spec: x-kubernetes-map-type: atomic tlsConfig: description: |- - tlsConfig defines the TLS configuration to connect to the Consul API. + tlsConfig defines the TLS configuration to connect to the EC2 API. It requires Prometheus >= v2.41.0 properties: ca: @@ -4154,7 +4158,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Eureka server. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -4645,12 +4649,11 @@ spec: server: description: server defines the URL to connect to the Eureka server. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Eureka server. properties: ca: description: ca defines the Certificate authority used when @@ -4933,7 +4936,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Hetzner API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -5445,7 +5448,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Hetzner API. properties: ca: description: ca defines the Certificate authority used when @@ -6297,8 +6300,7 @@ spec: url: description: url defines the URL from which the targets are fetched. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string required: - url @@ -6314,7 +6316,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the IONOS. + authorization defines the header configuration to authenticate against the IONOS API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -6759,7 +6761,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the IONOS API. properties: ca: description: ca defines the Certificate authority used when @@ -7713,7 +7715,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Kuma control plane. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -8219,7 +8221,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Kuma control plane. properties: ca: description: ca defines the Certificate authority used when @@ -8441,7 +8443,7 @@ spec: x-kubernetes-map-type: atomic authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Lightsail API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -8976,7 +8978,7 @@ spec: x-kubernetes-map-type: atomic tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Lightsail API. properties: ca: description: ca defines the Certificate authority used when @@ -9154,7 +9156,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Linode API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -9604,7 +9606,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Linode API. properties: ca: description: ca defines the Certificate authority used when @@ -9926,7 +9928,7 @@ spec: type: boolean authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the Nomad API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -10428,7 +10430,7 @@ spec: description: |- server defines the Nomad server address to connect to for service discovery. This should be the full URL including protocol (e.g., "https://nomad.example.com:4646"). - minLength: 1 + pattern: ^https?://.+$ type: string tagSeparator: description: |- @@ -10437,7 +10439,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Nomad API. properties: ca: description: ca defines the Certificate authority used when @@ -11010,7 +11012,7 @@ spec: description: |- identityEndpoint defines the HTTP endpoint that is required to work with the Identity API of the appropriate version. - pattern: ^http(s)?:\/\/.+$ + pattern: ^https?://.+$ type: string password: description: |- @@ -11418,7 +11420,7 @@ spec: properties: authorization: description: |- - authorization defines the header configuration to authenticate against the DigitalOcean API. + authorization defines the header configuration to authenticate against the PuppetDB API. Cannot be set at the same time as `oauth2`. properties: credentials: @@ -11929,7 +11931,7 @@ spec: type: string tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the PuppetDB server. properties: ca: description: ca defines the Certificate authority used when @@ -12098,8 +12100,7 @@ spec: url: description: url defines the URL of the PuppetDB root query endpoint. - minLength: 1 - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string required: - query @@ -12218,7 +12219,7 @@ spec: apiURL: description: apiURL defines the API URL to use when doing the server listing requests. - pattern: ^http(s)?://.+$ + pattern: ^https?://.+$ type: string enableHTTP2: description: enableHTTP2 defines whether to enable HTTP2. @@ -12345,7 +12346,7 @@ spec: x-kubernetes-list-type: set tlsConfig: description: tlsConfig defines the TLS configuration to connect - to the Consul API. + to the Scaleway API. properties: ca: description: ca defines the Certificate authority used when @@ -12604,9 +12605,9 @@ spec: description: targets defines the list of targets for this static configuration. items: - description: |- - Target represents a target for Prometheus to scrape - kubebuilder:validation:MinLength:=1 + description: Target represents a target for Prometheus to + scrape + minLength: 1 type: string minItems: 1 type: array diff --git a/bundle/manifests/monitoring.rhobs_servicemonitors.yaml b/bundle/manifests/monitoring.rhobs_servicemonitors.yaml index 29dc53a6d..d78be18cb 100644 --- a/bundle/manifests/monitoring.rhobs_servicemonitors.yaml +++ b/bundle/manifests/monitoring.rhobs_servicemonitors.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator diff --git a/bundle/manifests/monitoring.rhobs_thanosrulers.yaml b/bundle/manifests/monitoring.rhobs_thanosrulers.yaml index 25cfdb239..e84246442 100644 --- a/bundle/manifests/monitoring.rhobs_thanosrulers.yaml +++ b/bundle/manifests/monitoring.rhobs_thanosrulers.yaml @@ -4,7 +4,7 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 observability.openshift.io/api-support: TechPreview - operator.prometheus.io/version: 0.89.0-rhobs1 + operator.prometheus.io/version: 0.90.1-rhobs1 creationTimestamp: null labels: app.kubernetes.io/part-of: observability-operator @@ -1120,13 +1120,19 @@ spec: type: array containers: description: |- - containers allows injecting additional containers or modifying operator generated - containers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or - to change the behavior of an operator generated container. Containers described here modify - an operator generated container if they share the same name and modifications are done via a - strategic merge patch. The current container names are: `thanos-ruler` and `config-reloader`. - 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. + containers allows injecting additional containers or modifying operator + generated containers. This can be used to allow adding an authentication + proxy to the Pods or to change the behavior of an operator generated + container. Containers described here modify an operator generated + 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: + * `thanos-ruler` + * `config-reloader` + + Overriding containers which are managed by the operator require careful + testing, especially when upgrading to a new version of the operator. items: description: A single application container that you want to run within a pod. @@ -1994,7 +2000,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -2783,8 +2791,8 @@ spec: description: |- grpcServerTlsConfig defines the gRPC server from which Thanos Querier reads recorded rule data. - Note: Currently only the CAFile, CertFile, and KeyFile fields are supported. - Maps to the '--grpc-server-tls-*' CLI args. + + Note: Currently only the `minVersion`, `caFile`, `certFile`, and `keyFile` fields are supported. properties: ca: description: ca defines the Certificate authority used when verifying @@ -3031,13 +3039,11 @@ spec: type: array initContainers: description: |- - initContainers allows adding initContainers to the pod definition. Those can be used to e.g. - fetch secrets for injection into the ThanosRuler configuration from external sources. Any - errors during the execution of an initContainer will lead to a restart of the Pod. - More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ - Using initContainers for any use case other then secret fetching 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. + initContainers allows injecting initContainers to the Pod definition. + Those can be used to e.g. fetch secrets for injection into the + configuration from external sources. Any errors during the execution of + an initContainer will lead to a restart of the Pod. More info: + https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ items: description: A single application container that you want to run within a pod. @@ -3905,7 +3911,9 @@ spec: type: integer type: object resizePolicy: - description: Resources resize policy for the container. + description: |- + Resources resize policy for the container. + This field cannot be set on ephemeral containers. items: description: ContainerResizePolicy represents resource resize policy for the container. @@ -5825,9 +5833,11 @@ spec: type: string type: object url: - description: url defines the URL of the endpoint to send samples - to. - minLength: 1 + description: |- + url defines the URL of the endpoint to send samples to. + + It must use the HTTP or HTTPS scheme. + pattern: ^(http|https)://.+$ type: string writeRelabelConfigs: description: writeRelabelConfigs defines the list of remote @@ -6130,6 +6140,11 @@ spec: type: object type: object x-kubernetes-map-type: atomic + schedulerName: + description: schedulerName defines the scheduler to use for Pod scheduling. + If not specified, the default scheduler is used. + minLength: 1 + type: string securityContext: description: |- securityContext defines the pod-level security attributes and common container settings. @@ -6548,7 +6563,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -6803,7 +6818,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -6959,9 +6974,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object x-kubernetes-map-type: granular allocatedResources: @@ -6993,9 +7006,7 @@ spec: 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." + that change other valid\nresources associated with PVC." type: object capacity: additionalProperties: @@ -7122,9 +7133,10 @@ spec: operator: description: |- Operator represents a key's relationship to the value. - Valid operators are Exists and Equal. Defaults to Equal. + Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). type: string tolerationSeconds: description: |- @@ -8061,7 +8073,7 @@ spec: resources: description: |- resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements + Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -8940,6 +8952,24 @@ spec: description: Kubelet's generated CSRs will be addressed to this signer. type: string + userAnnotations: + additionalProperties: + type: string + description: |- + userAnnotations allow pod authors to pass additional information to + the signer implementation. Kubernetes does not restrict or validate this + metadata in any way. + + These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of + the PodCertificateRequest objects that Kubelet creates. + + Entries are subject to the same validation as object metadata annotations, + with the addition that all keys must be domain-prefixed. No restrictions + are placed on values, except an overall size limitation on the entire field. + + Signers should document the keys and values they support. Signers should + deny requests that contain keys they do not recognize. + type: object required: - keyType - signerName diff --git a/bundle/manifests/obo-prometheus-operator-admission-webhook_policy_v1_poddisruptionbudget.yaml b/bundle/manifests/obo-prometheus-operator-admission-webhook_policy_v1_poddisruptionbudget.yaml index 72ac6b2af..5658e24ed 100644 --- a/bundle/manifests/obo-prometheus-operator-admission-webhook_policy_v1_poddisruptionbudget.yaml +++ b/bundle/manifests/obo-prometheus-operator-admission-webhook_policy_v1_poddisruptionbudget.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: minAvailable: 1 diff --git a/bundle/manifests/obo-prometheus-operator-admission-webhook_v1_service.yaml b/bundle/manifests/obo-prometheus-operator-admission-webhook_v1_service.yaml index d9018be62..8c6315589 100644 --- a/bundle/manifests/obo-prometheus-operator-admission-webhook_v1_service.yaml +++ b/bundle/manifests/obo-prometheus-operator-admission-webhook_v1_service.yaml @@ -5,7 +5,7 @@ metadata: labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: ports: diff --git a/bundle/manifests/obo-prometheus-operator_v1_service.yaml b/bundle/manifests/obo-prometheus-operator_v1_service.yaml index 7db65fe18..592326f46 100644 --- a/bundle/manifests/obo-prometheus-operator_v1_service.yaml +++ b/bundle/manifests/obo-prometheus-operator_v1_service.yaml @@ -6,7 +6,7 @@ metadata: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 name: obo-prometheus-operator spec: clusterIP: None diff --git a/bundle/manifests/observability-operator.clusterserviceversion.yaml b/bundle/manifests/observability-operator.clusterserviceversion.yaml index ef84f9b80..cd6831d02 100644 --- a/bundle/manifests/observability-operator.clusterserviceversion.yaml +++ b/bundle/manifests/observability-operator.clusterserviceversion.yaml @@ -43,7 +43,7 @@ metadata: certified: "false" console.openshift.io/operator-monitoring-default: "true" containerImage: observability-operator:1.3.0 - createdAt: "2026-04-27T10:00:19Z" + createdAt: "2026-05-18T17:17:51Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. operatorframework.io/cluster-monitoring: "true" @@ -924,7 +924,7 @@ spec: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 @@ -943,7 +943,7 @@ spec: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 spec: affinity: nodeAffinity: @@ -956,7 +956,7 @@ spec: automountServiceAccountToken: true containers: - args: - - --prometheus-config-reloader=quay.io/rhobs/obo-prometheus-config-reloader:v0.89.0-rhobs1 + - --prometheus-config-reloader=quay.io/rhobs/obo-prometheus-config-reloader:v0.90.1-rhobs1 - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator @@ -965,7 +965,7 @@ spec: env: - name: GOGC value: "30" - image: quay.io/rhobs/obo-prometheus-operator:v0.89.0-rhobs1 + image: quay.io/rhobs/obo-prometheus-operator:v0.90.1-rhobs1 name: prometheus-operator ports: - containerPort: 8080 @@ -995,7 +995,7 @@ spec: - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 @@ -1013,7 +1013,7 @@ spec: labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator - app.kubernetes.io/version: 0.89.0-rhobs1 + app.kubernetes.io/version: 0.90.1-rhobs1 spec: affinity: nodeAffinity: @@ -1038,7 +1038,7 @@ spec: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key - image: quay.io/rhobs/obo-admission-webhook:v0.89.0-rhobs1 + image: quay.io/rhobs/obo-admission-webhook:v0.90.1-rhobs1 name: prometheus-operator-admission-webhook ports: - containerPort: 8443 diff --git a/bundle/manifests/observability.openshift.io_observabilityinstallers.yaml b/bundle/manifests/observability.openshift.io_observabilityinstallers.yaml index c33ab3439..3d1307c71 100644 --- a/bundle/manifests/observability.openshift.io_observabilityinstallers.yaml +++ b/bundle/manifests/observability.openshift.io_observabilityinstallers.yaml @@ -180,8 +180,8 @@ spec: - keyJSONSecret type: object gcsWIF: - description: GCSSToken defines the Google Cloud Storage - configuration using short-lived tokens. + description: GCSWIF defines the Google Cloud Storage + configuration using Workload Identity Federation. properties: audience: description: Audience is the optional audience. @@ -360,11 +360,12 @@ spec: type: object x-kubernetes-validations: - message: Storage configuration is required when tracing is enabled - rule: (!has(self.enabled) || !self.enabled) || [has(self.storage.objectStorage.s3), + rule: (!has(self.enabled) || !self.enabled) || (has(self.storage) + && has(self.storage.objectStorage) && [has(self.storage.objectStorage.s3), has(self.storage.objectStorage.s3STS), has(self.storage.objectStorage.s3CCO), has(self.storage.objectStorage.azure), has(self.storage.objectStorage.azureWIF), has(self.storage.objectStorage.gcs), has(self.storage.objectStorage.gcsWIF)].filter(x, - x).size() > 0 + x).size() > 0) type: object type: object status: diff --git a/bundle/manifests/perses.dev_perses.yaml b/bundle/manifests/perses.dev_perses.yaml index a55dc3d6e..03abd0940 100644 --- a/bundle/manifests/perses.dev_perses.yaml +++ b/bundle/manifests/perses.dev_perses.yaml @@ -3880,7 +3880,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -3959,7 +3959,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -4010,7 +4010,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -4066,7 +4066,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: @@ -6256,7 +6256,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -6310,7 +6310,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) type: object tolerations: description: tolerations allow pods to schedule onto nodes with matching diff --git a/bundle/manifests/perses.dev_persesdatasources.yaml b/bundle/manifests/perses.dev_persesdatasources.yaml index d3c294ef8..5952270e1 100644 --- a/bundle/manifests/perses.dev_persesdatasources.yaml +++ b/bundle/manifests/perses.dev_persesdatasources.yaml @@ -393,7 +393,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -472,7 +472,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -523,7 +523,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -579,7 +579,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: diff --git a/bundle/manifests/perses.dev_persesglobaldatasources.yaml b/bundle/manifests/perses.dev_persesglobaldatasources.yaml index 5aa5896f0..86d50407e 100644 --- a/bundle/manifests/perses.dev_persesglobaldatasources.yaml +++ b/bundle/manifests/perses.dev_persesglobaldatasources.yaml @@ -101,7 +101,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -180,7 +180,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -231,7 +231,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -287,7 +287,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: diff --git a/cmd/operator/main.go b/cmd/operator/main.go index 5cd7eefd5..812e0b2a7 100644 --- a/cmd/operator/main.go +++ b/cmd/operator/main.go @@ -40,22 +40,25 @@ import ( // prometheus-operator. For thanos we use the default version from // prometheus-operator. var defaultImages = map[string]string{ - "prometheus": "", - "alertmanager": "", - "thanos": obopo.DefaultThanosImage, - "ui-dashboards": "quay.io/openshift-observability-ui/console-dashboards-plugin:v0.4.2", - "ui-troubleshooting-panel": "quay.io/openshift-observability-ui/troubleshooting-panel-console-plugin:v0.4.4", - "ui-distributed-tracing-pf4": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v0.3.2", - "ui-distributed-tracing-pf5": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v0.4.2", - "ui-distributed-tracing": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v1.0.2", - "ui-logging-pf4": "quay.io/openshift-observability-ui/logging-view-plugin:v6.0.4", - "ui-logging-pf5": "quay.io/openshift-observability-ui/logging-view-plugin:v6.1.5", - "ui-logging": "quay.io/openshift-observability-ui/logging-view-plugin:v6.2.0", - "korrel8r": "quay.io/korrel8r/korrel8r:0.9.1", - "health-analyzer": "quay.io/openshiftanalytics/cluster-health-analyzer:v1.1.1-rc.0", - "ui-monitoring-pf5": "quay.io/openshift-observability-ui/monitoring-console-plugin:v0.4.4", - "ui-monitoring": "quay.io/openshift-observability-ui/monitoring-console-plugin:v0.5.3", - "perses": "quay.io/openshift-observability-ui/perses:v0.53.0-go-1.25", + "prometheus": "", + "alertmanager": "", + "thanos": obopo.DefaultThanosImage, + "ui-dashboards": "quay.io/openshift-observability-ui/console-dashboards-plugin:v0.4.3", + "ui-troubleshooting-panel-pf6": "quay.io/openshift-observability-ui/troubleshooting-panel-console-plugin:v0.4.5", + "ui-troubleshooting-panel": "quay.io/openshift-observability-ui/troubleshooting-panel-console-plugin:v1.0.0", + "ui-distributed-tracing-pf4": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v0.3.3", + "ui-distributed-tracing-pf5": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v0.4.3", + "ui-distributed-tracing-pf6": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v1.0.3", + "ui-distributed-tracing": "quay.io/openshift-observability-ui/distributed-tracing-console-plugin:v1.1.0", + "ui-logging-pf4": "quay.io/openshift-observability-ui/logging-view-plugin:v6.0.5", + "ui-logging-pf5": "quay.io/openshift-observability-ui/logging-view-plugin:v6.1.6", + "ui-logging": "quay.io/openshift-observability-ui/logging-view-plugin:v6.2.1", + "korrel8r": "quay.io/korrel8r/korrel8r:0.9.1", + "health-analyzer": "quay.io/openshiftanalytics/cluster-health-analyzer:v1.1.1-rc.0", + "ui-monitoring-pf5": "quay.io/openshift-observability-ui/monitoring-console-plugin:v0.4.5", + "ui-monitoring-pf6": "quay.io/openshift-observability-ui/monitoring-console-plugin:v0.5.4", + "ui-monitoring": "quay.io/openshift-observability-ui/monitoring-console-plugin:v1.0.0", + "perses": "quay.io/openshift-observability-ui/perses:v0.54.0", } func imagesUsed() []string { @@ -151,7 +154,7 @@ func main() { setupLog.Error(err, "failed to fetch TLS profile from cluster") os.Exit(1) } - setupLog.Info("fetched initial TLS profile", "minVersion", initialTLSProfileSpec.MinTLSVersion, "ciphers_len", len(initialTLSProfileSpec.Ciphers), "ciphers", initialTLSProfileSpec.Ciphers) + setupLog.Info("fetched initial TLS profile", "minVersion", initialTLSProfileSpec.MinTLSVersion, "ciphers", initialTLSProfileSpec.Ciphers) } op, err := operator.New( diff --git a/deploy/crds/common/observability.openshift.io_observabilityinstallers.yaml b/deploy/crds/common/observability.openshift.io_observabilityinstallers.yaml index fc254d266..b67ebc63e 100644 --- a/deploy/crds/common/observability.openshift.io_observabilityinstallers.yaml +++ b/deploy/crds/common/observability.openshift.io_observabilityinstallers.yaml @@ -180,8 +180,8 @@ spec: - keyJSONSecret type: object gcsWIF: - description: GCSSToken defines the Google Cloud Storage - configuration using short-lived tokens. + description: GCSWIF defines the Google Cloud Storage + configuration using Workload Identity Federation. properties: audience: description: Audience is the optional audience. @@ -360,11 +360,12 @@ spec: type: object x-kubernetes-validations: - message: Storage configuration is required when tracing is enabled - rule: (!has(self.enabled) || !self.enabled) || [has(self.storage.objectStorage.s3), + rule: (!has(self.enabled) || !self.enabled) || (has(self.storage) + && has(self.storage.objectStorage) && [has(self.storage.objectStorage.s3), has(self.storage.objectStorage.s3STS), has(self.storage.objectStorage.s3CCO), has(self.storage.objectStorage.azure), has(self.storage.objectStorage.azureWIF), has(self.storage.objectStorage.gcs), has(self.storage.objectStorage.gcsWIF)].filter(x, - x).size() > 0 + x).size() > 0) type: object type: object status: diff --git a/deploy/dependencies/kustomization.yaml b/deploy/dependencies/kustomization.yaml index 492c827fb..9aca63840 100644 --- a/deploy/dependencies/kustomization.yaml +++ b/deploy/dependencies/kustomization.yaml @@ -3,25 +3,25 @@ kind: Kustomization resources: -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_alertmanagers.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_podmonitors.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_probes.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheuses.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheusrules.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_servicemonitors.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_thanosrulers.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheusagents.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_alertmanagerconfigs.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_scrapeconfigs.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/rbac/prometheus-operator/prometheus-operator-deployment.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/rbac/prometheus-operator/prometheus-operator-cluster-role-binding.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/rbac/prometheus-operator/prometheus-operator-cluster-role.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/rbac/prometheus-operator/prometheus-operator-service-account.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/rbac/prometheus-operator/prometheus-operator-service.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/admission-webhook/deployment.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/admission-webhook/service-account.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/admission-webhook/service.yaml -- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.89.0-rhobs1/example/admission-webhook/pod-disruption-budget.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_alertmanagers.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_podmonitors.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_probes.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheuses.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheusrules.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_servicemonitors.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_thanosrulers.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_prometheusagents.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_alertmanagerconfigs.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/prometheus-operator-crd/monitoring.rhobs_scrapeconfigs.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/rbac/prometheus-operator/prometheus-operator-deployment.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/rbac/prometheus-operator/prometheus-operator-cluster-role-binding.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/rbac/prometheus-operator/prometheus-operator-cluster-role.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/rbac/prometheus-operator/prometheus-operator-service-account.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/rbac/prometheus-operator/prometheus-operator-service.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/admission-webhook/deployment.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/admission-webhook/service-account.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/admission-webhook/service.yaml +- https://raw.githubusercontent.com/rhobs/obo-prometheus-operator/v0.90.1-rhobs1/example/admission-webhook/pod-disruption-budget.yaml # NOTE: a service although automatically created by OLM for webhooks still # requires admission-webhook/service as the port generated by OLM uses 443 # but assumes targetPort to be 443 as opposed to "https" port of webhook - 8443 @@ -32,11 +32,11 @@ resources: images: - name: quay.io/rhobs/obo-prometheus-operator - newTag: v0.89.0-rhobs1 + newTag: v0.90.1-rhobs1 - name: quay.io/rhobs/obo-prometheus-config-reloader - newTag: v0.89.0-rhobs1 + newTag: v0.90.1-rhobs1 - name: quay.io/rhobs/obo-admission-webhook - newTag: v0.89.0-rhobs1 + newTag: v0.90.1-rhobs1 namespace: operators @@ -78,7 +78,7 @@ patches: - name: prometheus-operator image: quay.io/rhobs/obo-prometheus-operator args: - - --prometheus-config-reloader=quay.io/rhobs/obo-prometheus-config-reloader:v0.89.0-rhobs1 + - --prometheus-config-reloader=quay.io/rhobs/obo-prometheus-config-reloader:v0.90.1-rhobs1 - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator diff --git a/deploy/perses/crds/perses.dev_perses.yaml b/deploy/perses/crds/perses.dev_perses.yaml index 43a7b66e2..504fdba9a 100644 --- a/deploy/perses/crds/perses.dev_perses.yaml +++ b/deploy/perses/crds/perses.dev_perses.yaml @@ -3869,7 +3869,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -3948,7 +3948,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -3999,7 +3999,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -4055,7 +4055,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: @@ -6245,7 +6245,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -6299,7 +6299,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) type: object tolerations: description: tolerations allow pods to schedule onto nodes with matching diff --git a/deploy/perses/crds/perses.dev_persesdatasources.yaml b/deploy/perses/crds/perses.dev_persesdatasources.yaml index fa8e5809b..47839f489 100644 --- a/deploy/perses/crds/perses.dev_persesdatasources.yaml +++ b/deploy/perses/crds/perses.dev_persesdatasources.yaml @@ -392,7 +392,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -471,7 +471,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -522,7 +522,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -578,7 +578,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: diff --git a/deploy/perses/crds/perses.dev_persesglobaldatasources.yaml b/deploy/perses/crds/perses.dev_persesglobaldatasources.yaml index 4e5944c45..c006457c8 100644 --- a/deploy/perses/crds/perses.dev_persesglobaldatasources.yaml +++ b/deploy/perses/crds/perses.dev_persesglobaldatasources.yaml @@ -90,7 +90,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) kubernetesAuth: description: kubernetesAuth enables Kubernetes native authentication for the Perses client @@ -169,7 +169,7 @@ spec: - message: name is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' || has(self.name) - message: namespace is required when type is secret or configmap - rule: self.type != 'secret' && self.type != 'configmap' || has(self.namespace) + rule: self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__) tls: description: tls provides TLS/SSL configuration for secure connections to Perses @@ -220,7 +220,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) enable: description: enable determines whether TLS is enabled for connections to Perses @@ -276,7 +276,7 @@ spec: || has(self.name) - message: namespace is required when type is secret or configmap rule: self.type != 'secret' && self.type != 'configmap' - || has(self.namespace) + || has(self.__namespace__) type: object type: object config: diff --git a/docs/api.md b/docs/api.md index 4329f770b..550f99792 100644 --- a/docs/api.md +++ b/docs/api.md @@ -4336,7 +4336,7 @@ ObjectStorageSpec defines the object storage configuration for tracing.