diff --git a/.github/tools b/.github/tools index 51922c067..57d4e6c3f 100644 --- a/.github/tools +++ b/.github/tools @@ -1,11 +1,11 @@ # DO NOT EDIT! Autogenerated by make tools -golangci-lint v1.55.2 -controller-gen v0.14.0 +golangci-lint v1.61.0 +controller-gen v0.16.2 kustomize v4.5.2 oc v4.8.11 -operator-sdk v1.34.1 -opm v1.39.0 +operator-sdk v1.36.1 +opm v1.47.0 promq v0.0.1 crdoc v0.5.2 jsonnet v0.20.0 diff --git a/.golangci.yml b/.golangci.yml index 9c6593aec..d9624ffce 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ run: - deadline: 10m + timeout: 10m linters: enable: diff --git a/Makefile.tools b/Makefile.tools index e345933e5..6a52d056f 100644 --- a/Makefile.tools +++ b/Makefile.tools @@ -8,19 +8,19 @@ TOOLS_DIR = $(shell pwd)/tmp/bin # see: .github/tools-cache/action.yaml CONTROLLER_GEN=$(TOOLS_DIR)/controller-gen -CONTROLLER_GEN_VERSION= v0.14.0 +CONTROLLER_GEN_VERSION= v0.16.2 KUSTOMIZE=$(TOOLS_DIR)/kustomize KUSTOMIZE_VERSION= v4.5.2 OPERATOR_SDK = $(TOOLS_DIR)/operator-sdk -OPERATOR_SDK_VERSION = v1.34.1 +OPERATOR_SDK_VERSION = v1.36.1 OPM=$(TOOLS_DIR)/opm -OPM_VERSION = v1.39.0 +OPM_VERSION = v1.47.0 GOLANGCI_LINT=$(TOOLS_DIR)/golangci-lint -GOLANGCI_LINT_VERSION = v1.55.2 +GOLANGCI_LINT_VERSION = v1.61.0 ## NOTE: promq does not have any releases, so we use a fake version starting with v0.0.1 # thus to upgrade/invalidate the github cache, increment the value diff --git a/bundle.Dockerfile b/bundle.Dockerfile index 92b82edd3..320c76eae 100644 --- a/bundle.Dockerfile +++ b/bundle.Dockerfile @@ -7,7 +7,7 @@ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ LABEL operators.operatorframework.io.bundle.package.v1=observability-operator LABEL operators.operatorframework.io.bundle.channels.v1=development LABEL operators.operatorframework.io.bundle.channel.default.v1=development -LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.34.1 +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.36.1 LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 LABEL operators.operatorframework.io.metrics.project_layout=unknown diff --git a/bundle/manifests/monitoring.rhobs_monitoringstacks.yaml b/bundle/manifests/monitoring.rhobs_monitoringstacks.yaml index b0cb2074c..b03765a46 100644 --- a/bundle/manifests/monitoring.rhobs_monitoringstacks.yaml +++ b/bundle/manifests/monitoring.rhobs_monitoringstacks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 observability.openshift.io/api-support: TechPreview creationTimestamp: null name: monitoringstacks.monitoring.rhobs @@ -342,10 +342,8 @@ spec: description: |- Authorization section for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`. properties: credentials: @@ -363,9 +361,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -383,10 +379,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -394,10 +388,8 @@ spec: description: |- AzureAD for the URL. - It requires Prometheus >= v2.45.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`. properties: cloud: @@ -424,7 +416,6 @@ spec: OAuth defines the oauth config that is being used to authenticate. Cannot be set at the same time as `managedIdentity` or `sdk`. - It requires Prometheus >= v2.48.0. properties: clientId: @@ -450,9 +441,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -480,7 +469,6 @@ spec: See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication Cannot be set at the same time as `oauth` or `managedIdentity`. - It requires Prometheus >= 2.52.0. properties: tenantId: @@ -495,7 +483,6 @@ spec: description: |- BasicAuth configuration for the URL. - Cannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`. properties: password: @@ -514,9 +501,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -542,9 +527,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -560,14 +543,12 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File from which to read bearer token for the URL. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string enableHTTP2: @@ -577,7 +558,6 @@ spec: description: |- Configure whether HTTP requests follow HTTP 3xx redirects. - It requires Prometheus >= v2.26.0. type: boolean headers: @@ -587,7 +567,6 @@ spec: Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. - It requires Prometheus >= v2.25.0. type: object metadataConfig: @@ -609,7 +588,6 @@ spec: The name of the remote write queue, it must be unique if specified. The name is used in metrics and logging in order to differentiate queues. - It requires Prometheus >= v2.15.0. type: string noProxy: @@ -618,17 +596,14 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - It requires Prometheus >= v2.43.0. type: string oauth2: description: |- OAuth2 configuration for the URL. - It requires Prometheus >= v2.27.0. - Cannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`. properties: clientId: @@ -650,9 +625,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -677,9 +650,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -706,9 +677,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -757,9 +726,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -774,7 +741,6 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - It requires Prometheus >= v2.43.0. type: object x-kubernetes-map-type: atomic @@ -783,14 +749,12 @@ spec: Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). If unset, Prometheus uses its default value. - It requires Prometheus >= v2.43.0. type: boolean proxyUrl: description: |- `proxyURL` defines the HTTP proxy server to use. - It requires Prometheus >= v2.43.0. pattern: ^http(s)?://.+$ type: string @@ -837,7 +801,6 @@ spec: description: |- Retry upon receiving a 429 status code from the remote-write storage. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: boolean @@ -858,7 +821,6 @@ spec: exemplar-storage itself must be enabled using the `spec.enableFeature` option for exemplars to be scraped in the first place. - It requires Prometheus >= v2.27.0. type: boolean sendNativeHistograms: @@ -866,17 +828,14 @@ spec: Enables sending of native histograms, also known as sparse histograms over remote write. - It requires Prometheus >= v2.40.0. type: boolean sigv4: description: |- Sigv4 allows to configures AWS's Signature Verification 4 for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`. properties: accessKey: @@ -895,9 +854,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -935,9 +892,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -969,9 +924,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -996,9 +949,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -1031,9 +982,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -1058,9 +1007,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -1097,9 +1044,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -1123,7 +1068,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -1131,11 +1075,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -1165,7 +1107,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -1178,7 +1119,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -1201,11 +1141,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -1292,11 +1230,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. diff --git a/bundle/manifests/monitoring.rhobs_thanosqueriers.yaml b/bundle/manifests/monitoring.rhobs_thanosqueriers.yaml index 19f8ab9ab..cc5275d0e 100644 --- a/bundle/manifests/monitoring.rhobs_thanosqueriers.yaml +++ b/bundle/manifests/monitoring.rhobs_thanosqueriers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 observability.openshift.io/api-support: TechPreview creationTimestamp: null name: thanosqueriers.monitoring.rhobs diff --git a/bundle/manifests/observability-operator.clusterserviceversion.yaml b/bundle/manifests/observability-operator.clusterserviceversion.yaml index b3daf910e..09133d673 100644 --- a/bundle/manifests/observability-operator.clusterserviceversion.yaml +++ b/bundle/manifests/observability-operator.clusterserviceversion.yaml @@ -42,10 +42,10 @@ metadata: categories: Monitoring certified: "false" containerImage: observability-operator:0.4.0 - createdAt: "2024-08-30T12:02:05Z" + createdAt: "2024-09-18T08:56:09Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. - operators.operatorframework.io/builder: operator-sdk-v1.34.1 + operators.operatorframework.io/builder: operator-sdk-v1.36.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", @@ -273,28 +273,10 @@ spec: - "" resources: - configmaps - - endpoints - - events - - namespaces - - nodes - - persistentvolumeclaims - - persistentvolumes - - pods - - replicationcontrollers - secrets - serviceaccounts - services verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - configmaps - - serviceaccounts - - services - verbs: - create - delete - get @@ -306,30 +288,21 @@ spec: - "" resources: - endpoints + - events + - namespaces + - nodes + - persistentvolumeclaims + - persistentvolumes - pods - - services + - replicationcontrollers verbs: - get - list - watch - - apiGroups: - - "" - resources: - - secrets - - serviceaccounts - - services - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - apps resources: - daemonsets - - deployments - replicasets - statefulsets verbs: @@ -343,6 +316,7 @@ spec: verbs: - create - delete + - get - list - patch - update @@ -384,18 +358,6 @@ spec: - patch - update - watch - - apiGroups: - - "" - resources: - - serviceaccounts - - services - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - extensions - networking.k8s.io @@ -405,14 +367,6 @@ spec: - get - list - watch - - apiGroups: - - loki.grafana.com - resources: - - application - - audit - - infrastructure - verbs: - - get - apiGroups: - loki.grafana.com resources: @@ -447,6 +401,7 @@ spec: - alertmanagers - prometheuses - servicemonitors + - thanosqueriers verbs: - create - delete @@ -472,35 +427,6 @@ spec: verbs: - get - update - - apiGroups: - - monitoring.rhobs - resources: - - monitoringstacks/status - verbs: - - get - - update - - apiGroups: - - monitoring.rhobs - resources: - - servicemonitors - verbs: - - create - - delete - - list - - patch - - update - - watch - - apiGroups: - - monitoring.rhobs - resources: - - thanosqueriers - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - monitoring.rhobs resources: @@ -544,13 +470,6 @@ spec: verbs: - get - update - - apiGroups: - - observability.openshift.io - resources: - - uiplugins/status - verbs: - - get - - update - apiGroups: - operator.openshift.io resources: @@ -587,18 +506,6 @@ spec: - patch - update - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - - roles - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - security.openshift.io resourceNames: diff --git a/bundle/manifests/observability.openshift.io_uiplugins.yaml b/bundle/manifests/observability.openshift.io_uiplugins.yaml index 26020b8cf..4cb2491e1 100644 --- a/bundle/manifests/observability.openshift.io_uiplugins.yaml +++ b/bundle/manifests/observability.openshift.io_uiplugins.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 creationTimestamp: null name: uiplugins.observability.openshift.io spec: @@ -49,7 +49,6 @@ spec: description: |- Define a label-selector for nodes which the Pods should be scheduled on. - When no selector is specified it will default to a value only selecting Linux nodes ("kubernetes.io/os=linux"). type: object tolerations: @@ -100,7 +99,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds) or 'm' (minutes). pattern: ^([0-9]+)([sm]{1})$ @@ -110,7 +108,6 @@ spec: description: |- Logging contains configuration for the logging console plugin. - It only applies to UIPlugin Type: Logging. properties: logsLimit: @@ -136,7 +133,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by an optional unit suffix, which can be 's' (seconds) or 'm' (minutes). If the unit is omitted, it defaults to seconds. pattern: ^([0-9]+)([sm]{0,1})$ @@ -152,7 +148,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds) or 'm' (minutes). pattern: ^([0-9]+)([sm]{1})$ diff --git a/bundle/metadata/annotations.yaml b/bundle/metadata/annotations.yaml index 721506057..aeb496258 100644 --- a/bundle/metadata/annotations.yaml +++ b/bundle/metadata/annotations.yaml @@ -6,7 +6,7 @@ annotations: operators.operatorframework.io.bundle.package.v1: observability-operator operators.operatorframework.io.bundle.channels.v1: development operators.operatorframework.io.bundle.channel.default.v1: development - operators.operatorframework.io.metrics.builder: operator-sdk-v1.34.1 + operators.operatorframework.io.metrics.builder: operator-sdk-v1.36.1 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: unknown diff --git a/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml b/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml index fd2f3db64..1490ff95b 100644 --- a/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml +++ b/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 observability.openshift.io/api-support: TechPreview name: monitoringstacks.monitoring.rhobs spec: @@ -342,10 +342,8 @@ spec: description: |- Authorization section for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`. properties: credentials: @@ -363,9 +361,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -383,10 +379,8 @@ spec: description: |- Defines the authentication type. The value is case-insensitive. - "Basic" is not a supported value. - Default: "Bearer" type: string type: object @@ -394,10 +388,8 @@ spec: description: |- AzureAD for the URL. - It requires Prometheus >= v2.45.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`. properties: cloud: @@ -424,7 +416,6 @@ spec: OAuth defines the oauth config that is being used to authenticate. Cannot be set at the same time as `managedIdentity` or `sdk`. - It requires Prometheus >= v2.48.0. properties: clientId: @@ -450,9 +441,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -480,7 +469,6 @@ spec: See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication Cannot be set at the same time as `oauth` or `managedIdentity`. - It requires Prometheus >= 2.52.0. properties: tenantId: @@ -495,7 +483,6 @@ spec: description: |- BasicAuth configuration for the URL. - Cannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`. properties: password: @@ -514,9 +501,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -542,9 +527,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -560,14 +543,12 @@ spec: *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - Deprecated: this will be removed in a future release. type: string bearerTokenFile: description: |- File from which to read bearer token for the URL. - Deprecated: this will be removed in a future release. Prefer using `authorization`. type: string enableHTTP2: @@ -577,7 +558,6 @@ spec: description: |- Configure whether HTTP requests follow HTTP 3xx redirects. - It requires Prometheus >= v2.26.0. type: boolean headers: @@ -587,7 +567,6 @@ spec: Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. - It requires Prometheus >= v2.25.0. type: object metadataConfig: @@ -609,7 +588,6 @@ spec: The name of the remote write queue, it must be unique if specified. The name is used in metrics and logging in order to differentiate queues. - It requires Prometheus >= v2.15.0. type: string noProxy: @@ -618,17 +596,14 @@ spec: that should be excluded from proxying. IP and domain names can contain port numbers. - It requires Prometheus >= v2.43.0. type: string oauth2: description: |- OAuth2 configuration for the URL. - It requires Prometheus >= v2.27.0. - Cannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`. properties: clientId: @@ -650,9 +625,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -677,9 +650,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -706,9 +677,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -757,9 +726,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -774,7 +741,6 @@ spec: ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. - It requires Prometheus >= v2.43.0. type: object x-kubernetes-map-type: atomic @@ -783,14 +749,12 @@ spec: Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). If unset, Prometheus uses its default value. - It requires Prometheus >= v2.43.0. type: boolean proxyUrl: description: |- `proxyURL` defines the HTTP proxy server to use. - It requires Prometheus >= v2.43.0. pattern: ^http(s)?://.+$ type: string @@ -837,7 +801,6 @@ spec: description: |- Retry upon receiving a 429 status code from the remote-write storage. - This is an *experimental feature*, it may change in any upcoming release in a breaking way. type: boolean @@ -858,7 +821,6 @@ spec: exemplar-storage itself must be enabled using the `spec.enableFeature` option for exemplars to be scraped in the first place. - It requires Prometheus >= v2.27.0. type: boolean sendNativeHistograms: @@ -866,17 +828,14 @@ spec: Enables sending of native histograms, also known as sparse histograms over remote write. - It requires Prometheus >= v2.40.0. type: boolean sigv4: description: |- Sigv4 allows to configures AWS's Signature Verification 4 for the URL. - It requires Prometheus >= v2.26.0. - Cannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`. properties: accessKey: @@ -895,9 +854,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -935,9 +892,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -969,9 +924,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -996,9 +949,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -1031,9 +982,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the ConfigMap or @@ -1058,9 +1007,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its @@ -1097,9 +1044,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: description: Specify whether the Secret or its key @@ -1123,7 +1068,6 @@ spec: RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. - More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config properties: action: @@ -1131,11 +1075,9 @@ spec: description: |- Action to perform based on the regex matching. - `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. - Default: "Replace" enum: - replace @@ -1165,7 +1107,6 @@ spec: description: |- Modulus to take of the hash of the source label values. - Only applicable when the action is `HashMod`. format: int64 type: integer @@ -1178,7 +1119,6 @@ spec: Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. type: string separator: @@ -1201,11 +1141,9 @@ spec: description: |- Label to which the resulting string is written in a replacement. - It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. - Regex capture groups are available. type: string type: object @@ -1292,11 +1230,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. diff --git a/deploy/crds/common/monitoring.rhobs_thanosqueriers.yaml b/deploy/crds/common/monitoring.rhobs_thanosqueriers.yaml index 556f58a5f..d708ea933 100644 --- a/deploy/crds/common/monitoring.rhobs_thanosqueriers.yaml +++ b/deploy/crds/common/monitoring.rhobs_thanosqueriers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 observability.openshift.io/api-support: TechPreview name: thanosqueriers.monitoring.rhobs spec: diff --git a/deploy/crds/common/observability.openshift.io_uiplugins.yaml b/deploy/crds/common/observability.openshift.io_uiplugins.yaml index 839126f4f..4a43b1321 100644 --- a/deploy/crds/common/observability.openshift.io_uiplugins.yaml +++ b/deploy/crds/common/observability.openshift.io_uiplugins.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.2 name: uiplugins.observability.openshift.io spec: group: observability.openshift.io @@ -49,7 +49,6 @@ spec: description: |- Define a label-selector for nodes which the Pods should be scheduled on. - When no selector is specified it will default to a value only selecting Linux nodes ("kubernetes.io/os=linux"). type: object tolerations: @@ -100,7 +99,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds) or 'm' (minutes). pattern: ^([0-9]+)([sm]{1})$ @@ -110,7 +108,6 @@ spec: description: |- Logging contains configuration for the logging console plugin. - It only applies to UIPlugin Type: Logging. properties: logsLimit: @@ -136,7 +133,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by an optional unit suffix, which can be 's' (seconds) or 'm' (minutes). If the unit is omitted, it defaults to seconds. pattern: ^([0-9]+)([sm]{0,1})$ @@ -152,7 +148,6 @@ spec: description: |- Timeout is the maximum duration before a query timeout. - The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds) or 'm' (minutes). pattern: ^([0-9]+)([sm]{1})$ diff --git a/deploy/operator/observability-operator-cluster-role.yaml b/deploy/operator/observability-operator-cluster-role.yaml index bc6170bfa..29f51cb6a 100644 --- a/deploy/operator/observability-operator-cluster-role.yaml +++ b/deploy/operator/observability-operator-cluster-role.yaml @@ -8,28 +8,10 @@ rules: - "" resources: - configmaps - - endpoints - - events - - namespaces - - nodes - - persistentvolumeclaims - - persistentvolumes - - pods - - replicationcontrollers - secrets - serviceaccounts - services verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - configmaps - - serviceaccounts - - services - verbs: - create - delete - get @@ -41,30 +23,21 @@ rules: - "" resources: - endpoints + - events + - namespaces + - nodes + - persistentvolumeclaims + - persistentvolumes - pods - - services + - replicationcontrollers verbs: - get - list - watch -- apiGroups: - - "" - resources: - - secrets - - serviceaccounts - - services - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - apps resources: - daemonsets - - deployments - replicasets - statefulsets verbs: @@ -78,6 +51,7 @@ rules: verbs: - create - delete + - get - list - patch - update @@ -119,18 +93,6 @@ rules: - patch - update - watch -- apiGroups: - - "" - resources: - - serviceaccounts - - services - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - extensions - networking.k8s.io @@ -140,14 +102,6 @@ rules: - get - list - watch -- apiGroups: - - loki.grafana.com - resources: - - application - - audit - - infrastructure - verbs: - - get - apiGroups: - loki.grafana.com resources: @@ -182,6 +136,7 @@ rules: - alertmanagers - prometheuses - servicemonitors + - thanosqueriers verbs: - create - delete @@ -207,35 +162,6 @@ rules: verbs: - get - update -- apiGroups: - - monitoring.rhobs - resources: - - monitoringstacks/status - verbs: - - get - - update -- apiGroups: - - monitoring.rhobs - resources: - - servicemonitors - verbs: - - create - - delete - - list - - patch - - update - - watch -- apiGroups: - - monitoring.rhobs - resources: - - thanosqueriers - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - monitoring.rhobs resources: @@ -279,13 +205,6 @@ rules: verbs: - get - update -- apiGroups: - - observability.openshift.io - resources: - - uiplugins/status - verbs: - - get - - update - apiGroups: - operator.openshift.io resources: @@ -322,18 +241,6 @@ rules: - patch - update - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - - roles - verbs: - - create - - delete - - list - - patch - - update - - watch - apiGroups: - security.openshift.io resourceNames: diff --git a/docs/api.md b/docs/api.md index c1c5cc1c1..1ff30a3ff 100644 --- a/docs/api.md +++ b/docs/api.md @@ -766,10 +766,8 @@ to a remote endpoint.
|
Defines the authentication type. The value is case-insensitive.
-
"Basic" is not a supported value.
-
Default: "Bearer" |
false | @@ -1072,9 +1048,7 @@ Selects a key of a Secret in the namespace that contains the credentials for aut This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. -TODO: Add other useful fields. apiVersion, kind, uid? -More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names -TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
| false | @@ -1148,7 +1119,6 @@ It requires Prometheus >= v2.48.0.false | @@ -1192,7 +1162,6 @@ Cannot be set at the same time as `oauth` or `sdk`. OAuth defines the oauth config that is being used to authenticate. Cannot be set at the same time as `managedIdentity` or `sdk`. - It requires Prometheus >= v2.48.0.
|
Retry upon receiving a 429 status code from the remote-write storage.
-
This is an *experimental feature*, it may change in any upcoming release
in a breaking way. |
@@ -1882,10 +1832,8 @@ It requires Prometheus >= v2.50.0.
|
Action to perform based on the regex matching.
-
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
-
Default: "Replace" Enum: replace, Replace, keep, Keep, drop, Drop, hashmod, HashMod, labelmap, LabelMap, labeldrop, LabelDrop, labelkeep, LabelKeep, lowercase, Lowercase, uppercase, Uppercase, keepequal, KeepEqual, dropequal, DropEqual @@ -2470,7 +2401,6 @@ Default: "Replace" |
Modulus to take of the hash of the source label values.
-
Only applicable when the action is `HashMod`. Format: int64 @@ -2490,7 +2420,6 @@ Only applicable when the action is `HashMod`. Replacement value against which a Replace action is performed if the regular expression matches. - Regex capture groups are available. |
false | @@ -2516,11 +2445,9 @@ configured regular expression.
Label to which the resulting string is written in a replacement.
-
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions.
-
Regex capture groups are available. |
false | @@ -2635,11 +2562,9 @@ Define resources requests and limits for Monitoring Stack Pods. Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers.false | @@ -3193,7 +3118,6 @@ UIPluginSpec is the specification for desired state of UIPlugin.
Logging contains configuration for the logging console plugin.
-
It only applies to UIPlugin Type: Logging. |
false | @@ -3230,7 +3154,6 @@ Deployment allows customizing aspects of the generated deployment hosting the UI
Define a label-selector for nodes which the Pods should be scheduled on.
-
When no selector is specified it will default to a value only selecting Linux nodes ("kubernetes.io/os=linux"). |
false | @@ -3334,7 +3257,6 @@ DistributedTracing contains configuration for the distributed tracing console pl
Timeout is the maximum duration before a query timeout.
-
The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds)
or 'm' (minutes). |
@@ -3350,7 +3272,6 @@ or 'm' (minutes).
|
Timeout is the maximum duration before a query timeout.
-
The value is expected to be a sequence of digits followed by an optional unit suffix, which can be 's' (seconds)
or 'm' (minutes). If the unit is omitted, it defaults to seconds. |
@@ -3445,7 +3365,6 @@ TroubleshootingPanel contains configuration for the troubleshooting console plug
Timeout is the maximum duration before a query timeout.
-
The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds)
or 'm' (minutes). |
diff --git a/go.mod b/go.mod
index 1b12c13ea..c4f83a1c6 100644
--- a/go.mod
+++ b/go.mod
@@ -1,8 +1,6 @@
module github.com/rhobs/observability-operator
-go 1.22.0
-
-toolchain go1.22.3
+go 1.22.7
require (
github.com/go-logr/logr v1.4.2