diff --git a/clusters/cl01tl/manifests/grafana-operator/ClusterRole-grafana-operator.yaml b/clusters/cl01tl/manifests/grafana-operator/ClusterRole-grafana-operator.yaml index bb434c457..2eafe778e 100644 --- a/clusters/cl01tl/manifests/grafana-operator/ClusterRole-grafana-operator.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/ClusterRole-grafana-operator.yaml @@ -3,10 +3,10 @@ kind: ClusterRole metadata: name: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator @@ -27,16 +27,6 @@ rules: - patch - update - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - get - - list - - patch - - watch - apiGroups: - apps resources: @@ -50,17 +40,12 @@ rules: - update - watch - apiGroups: - - coordination.k8s.io + - events.k8s.io resources: - - leases + - events verbs: - create - - delete - - get - - list - patch - - update - - watch - apiGroups: - gateway.networking.k8s.io resources: diff --git a/clusters/cl01tl/manifests/grafana-operator/ClusterRoleBinding-grafana-operator.yaml b/clusters/cl01tl/manifests/grafana-operator/ClusterRoleBinding-grafana-operator.yaml index 6d9d8dc67..fd0cdfd6b 100644 --- a/clusters/cl01tl/manifests/grafana-operator/ClusterRoleBinding-grafana-operator.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/ClusterRoleBinding-grafana-operator.yaml @@ -3,18 +3,18 @@ kind: ClusterRoleBinding metadata: name: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator -subjects: - - kind: ServiceAccount - name: grafana-operator - namespace: grafana-operator roleRef: kind: ClusterRole name: grafana-operator apiGroup: rbac.authorization.k8s.io +subjects: + - kind: ServiceAccount + name: grafana-operator + namespace: grafana-operator diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaalertrulegroups.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaalertrulegroups.grafana.integreatly.org.yaml index 781090513..2da920c49 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaalertrulegroups.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaalertrulegroups.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanaalertrulegroups.grafana.integreatly.org spec: group: grafana.integreatly.org @@ -140,6 +140,9 @@ spec: type: object condition: type: string + dashboardUid: + description: 'Deprecated: The field is not used, use rules[].annotations.__dashboardUid__' + type: string data: items: properties: @@ -205,31 +208,55 @@ spec: type: string notificationSettings: properties: + active_time_intervals: + description: ActiveTimeIntervals defines the time intervals during which notifications should NOT be muted. + items: + type: string + type: array group_by: + description: GroupBy defines the labels by which incoming alerts are grouped together. items: type: string type: array group_interval: + description: |- + GroupInterval defines how long to wait before sending a notification about new alerts added + to a group for which an initial notification has already been sent. (e.g. 5m) type: string group_wait: + description: GroupWait defines how long to initially wait to send a notification for a group of alerts. (e.g. 30s) type: string mute_time_intervals: + description: |- + MuteTimeIntervals defines the time intervals during which notifications should be muted. + These must match the name of a mute time interval defined in the Alertmanager configuration. items: type: string type: array receiver: + description: Receiver is the name of the receiver to send notifications to. + minLength: 1 type: string repeat_interval: + description: |- + RepeatInterval defines how long to wait before sending a notification again if it has already + been sent successfully for an alert. (e.g. 4h) + Should not be less than GroupInterval. type: string required: - receiver type: object + panelId: + description: 'Deprecated: The field is not used, use rules[].annotations.__panelId__' + type: integer record: properties: from: type: string metric: type: string + targetDatasourceUid: + type: string required: - from - metric diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanacontactpoints.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanacontactpoints.grafana.integreatly.org.yaml index 83d052afd..74a4095a4 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanacontactpoints.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanacontactpoints.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanacontactpoints.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadashboards.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadashboards.grafana.integreatly.org.yaml index a1553814c..db1778f37 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadashboards.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadashboards.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanadashboards.grafana.integreatly.org spec: group: grafana.integreatly.org @@ -333,6 +333,7 @@ spec: rule: self == oldSelf url: description: model url + pattern: ^https?://.+$ type: string urlAuthorization: description: authorization options for model from url diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadatasources.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadatasources.grafana.integreatly.org.yaml index 409e7bf2b..3bf4ca26f 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadatasources.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanadatasources.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanadatasources.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanafolders.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanafolders.grafana.integreatly.org.yaml index 2a4bf5f76..95d19bdb6 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanafolders.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanafolders.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanafolders.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanalibrarypanels.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanalibrarypanels.grafana.integreatly.org.yaml index 9a7558085..e352f2092 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanalibrarypanels.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanalibrarypanels.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanalibrarypanels.grafana.integreatly.org spec: group: grafana.integreatly.org @@ -327,6 +327,7 @@ spec: rule: self == oldSelf url: description: model url + pattern: ^https?://.+$ type: string urlAuthorization: description: authorization options for model from url diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamanifests.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamanifests.grafana.integreatly.org.yaml new file mode 100644 index 000000000..3bd97971b --- /dev/null +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamanifests.grafana.integreatly.org.yaml @@ -0,0 +1,315 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: grafanamanifests.grafana.integreatly.org +spec: + group: grafana.integreatly.org + names: + categories: + - grafana-operator + kind: GrafanaManifest + listKind: GrafanaManifestList + plural: grafanamanifests + singular: grafanamanifest + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.template.kind + name: Kind + type: string + - format: date-time + jsonPath: .status.lastResync + name: Last resync + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: GrafanaManifest is the Schema for the grafana manifests + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: GrafanaManifestSpec defines the desired state of a GrafanaManifest + properties: + allowCrossNamespaceImport: + default: false + description: Allow the Operator to match this resource with Grafanas outside the current namespace + type: boolean + instanceSelector: + description: Selects Grafana instances for import + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + x-kubernetes-validations: + - message: spec.instanceSelector is immutable + rule: self == oldSelf + patch: + properties: + env: + items: + properties: + name: + type: string + valueFrom: + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + grafanaRef: + description: ObjectFieldSelector selects an APIVersioned field of an object. + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + - valueFrom + type: object + type: array + scripts: + items: + type: string + type: array + required: + - scripts + type: object + resyncPeriod: + description: How often the resource is synced, defaults to 10m0s if not set + pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ + type: string + suspend: + description: Suspend pauses synchronizing attempts and tells the operator to ignore changes + type: boolean + template: + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation of an object. + type: string + kind: + description: Kind is a string value representing the REST resource this object represents. + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + metadata: + description: |- + RequiredObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta). + It requires `name` to be set + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + namespace: + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + required: + - name + type: object + x-kubernetes-validations: + - message: namespace is immutable + rule: (!(has(oldSelf.namespace) && !has(self.namespace))) + spec: + x-kubernetes-preserve-unknown-fields: true + required: + - apiVersion + - kind + - metadata + type: object + required: + - instanceSelector + - template + type: object + x-kubernetes-validations: + - message: disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state + rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport)' + status: + description: GrafanaManifestStatus defines the observed state of GrafanaManifest + properties: + conditions: + description: Results when synchronizing resource with Grafana instances + items: + description: Condition contains details for one aspect of the current state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastResync: + description: Last time the resource was synchronized with Grafana instances + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamutetimings.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamutetimings.grafana.integreatly.org.yaml index 6077179a6..b0f8f388c 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamutetimings.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanamutetimings.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanamutetimings.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicies.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicies.grafana.integreatly.org.yaml index 2b5bf36f7..ad1e6c5ee 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicies.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicies.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafananotificationpolicies.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicyroutes.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicyroutes.grafana.integreatly.org.yaml index afd7222c4..6974b3d5a 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicyroutes.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationpolicyroutes.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafananotificationpolicyroutes.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationtemplates.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationtemplates.grafana.integreatly.org.yaml index b43eca4a0..ef43055f4 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationtemplates.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafananotificationtemplates.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafananotificationtemplates.grafana.integreatly.org spec: group: grafana.integreatly.org diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanas.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanas.grafana.integreatly.org.yaml index a777c1e75..b06ce20bc 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanas.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanas.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanas.grafana.integreatly.org spec: group: grafana.integreatly.org @@ -3683,6 +3683,10 @@ spec: type: integer signerName: type: string + userAnnotations: + additionalProperties: + type: string + type: object required: - keyType - signerName @@ -3957,6 +3961,15 @@ spec: - key type: object x-kubernetes-map-type: atomic + tenantNamespace: + default: default + description: |- + TenantNamespace is used as the `namespace` value for GrafanaManifest resources in multi-tenant scenarios + defaults to `default` + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tls: description: DEPRECATED, use top level `tls` instead. properties: @@ -3980,8 +3993,10 @@ spec: rule: (has(self.insecureSkipVerify) && !(has(self.certSecretRef))) || (has(self.certSecretRef) && !(has(self.insecureSkipVerify))) url: description: URL of the external grafana instance you want to manage. + pattern: ^https?://.+$ type: string required: + - tenantNamespace - url type: object httpRoute: @@ -4298,11 +4313,6 @@ spec: maxItems: 32 type: array rules: - default: - - matches: - - path: - type: PathPrefix - value: / description: |- Rules are a list of HTTP matchers, filters and actions. @@ -8235,7 +8245,7 @@ spec: description: |- Version sets the tag of the default image: docker.io/grafana/grafana. Allows full image refs with/without sha256checksum: "registry/repo/image:tag@sha" - default: 12.3.0 + default: 12.3.3 type: string type: object status: @@ -8324,6 +8334,10 @@ spec: items: type: string type: array + manifests: + items: + type: string + type: array muteTimings: items: type: string diff --git a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaserviceaccounts.grafana.integreatly.org.yaml b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaserviceaccounts.grafana.integreatly.org.yaml index 304f4c61a..b46d7d050 100644 --- a/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaserviceaccounts.grafana.integreatly.org.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/CustomResourceDefinition-grafanaserviceaccounts.grafana.integreatly.org.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.19.0 + controller-gen.kubebuilder.io/version: v0.20.1 name: grafanaserviceaccounts.grafana.integreatly.org spec: group: grafana.integreatly.org @@ -110,9 +110,11 @@ spec: x-kubernetes-list-type: map required: - instanceName - - name - role type: object + x-kubernetes-validations: + - message: spec.name is immutable + rule: ((!has(oldSelf.name) && !has(self.name)) || (has(oldSelf.name) && has(self.name))) status: description: GrafanaServiceAccountStatus defines the observed state of a GrafanaServiceAccount properties: diff --git a/clusters/cl01tl/manifests/grafana-operator/Deployment-grafana-operator.yaml b/clusters/cl01tl/manifests/grafana-operator/Deployment-grafana-operator.yaml index 57d330eff..c1c5fe588 100644 --- a/clusters/cl01tl/manifests/grafana-operator/Deployment-grafana-operator.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/Deployment-grafana-operator.yaml @@ -4,10 +4,10 @@ metadata: name: grafana-operator namespace: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator @@ -20,10 +20,10 @@ spec: template: metadata: labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator @@ -38,11 +38,11 @@ spec: - ALL readOnlyRootFilesystem: true runAsNonRoot: true - image: "ghcr.io/grafana/grafana-operator:v5.21.4" + image: "ghcr.io/grafana/grafana-operator:v5.22.0" imagePullPolicy: IfNotPresent env: - name: WATCH_NAMESPACE - value: + value: "" - name: WATCH_NAMESPACE_SELECTOR value: "" - name: WATCH_LABEL_SELECTORS diff --git a/clusters/cl01tl/manifests/grafana-operator/Role-grafana-operator-leases.yaml b/clusters/cl01tl/manifests/grafana-operator/Role-grafana-operator-leases.yaml new file mode 100644 index 000000000..2a71fbf75 --- /dev/null +++ b/clusters/cl01tl/manifests/grafana-operator/Role-grafana-operator-leases.yaml @@ -0,0 +1,26 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + namespace: grafana-operator + name: grafana-operator-leases + labels: + helm.sh/chart: grafana-operator-5.22.0 + app.kubernetes.io/name: grafana-operator + app.kubernetes.io/instance: grafana-operator + app.kubernetes.io/version: "v5.22.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: grafana-operator + app.kubernetes.io/component: operator +rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete diff --git a/clusters/cl01tl/manifests/grafana-operator/RoleBinding-grafana-operator-leases.yaml b/clusters/cl01tl/manifests/grafana-operator/RoleBinding-grafana-operator-leases.yaml new file mode 100644 index 000000000..5c8e150ab --- /dev/null +++ b/clusters/cl01tl/manifests/grafana-operator/RoleBinding-grafana-operator-leases.yaml @@ -0,0 +1,21 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: grafana-operator-leases + namespace: grafana-operator + labels: + helm.sh/chart: grafana-operator-5.22.0 + app.kubernetes.io/name: grafana-operator + app.kubernetes.io/instance: grafana-operator + app.kubernetes.io/version: "v5.22.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: grafana-operator + app.kubernetes.io/component: operator +subjects: + - kind: ServiceAccount + name: grafana-operator + namespace: grafana-operator +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: grafana-operator-leases diff --git a/clusters/cl01tl/manifests/grafana-operator/Service-grafana-operator-metrics-service.yaml b/clusters/cl01tl/manifests/grafana-operator/Service-grafana-operator-metrics-service.yaml index db8411d40..b0f7dac48 100644 --- a/clusters/cl01tl/manifests/grafana-operator/Service-grafana-operator-metrics-service.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/Service-grafana-operator-metrics-service.yaml @@ -4,10 +4,10 @@ metadata: name: grafana-operator-metrics-service namespace: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator diff --git a/clusters/cl01tl/manifests/grafana-operator/ServiceAccount-grafana-operator.yaml b/clusters/cl01tl/manifests/grafana-operator/ServiceAccount-grafana-operator.yaml index afe0a1fbc..60ea87ca1 100644 --- a/clusters/cl01tl/manifests/grafana-operator/ServiceAccount-grafana-operator.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/ServiceAccount-grafana-operator.yaml @@ -4,10 +4,10 @@ metadata: name: grafana-operator namespace: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator diff --git a/clusters/cl01tl/manifests/grafana-operator/ServiceMonitor-grafana-operator.yaml b/clusters/cl01tl/manifests/grafana-operator/ServiceMonitor-grafana-operator.yaml index 27530f7b1..a374e942d 100644 --- a/clusters/cl01tl/manifests/grafana-operator/ServiceMonitor-grafana-operator.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/ServiceMonitor-grafana-operator.yaml @@ -4,10 +4,10 @@ metadata: name: grafana-operator namespace: grafana-operator labels: - helm.sh/chart: grafana-operator-5.21.4 + helm.sh/chart: grafana-operator-5.22.0 app.kubernetes.io/name: grafana-operator app.kubernetes.io/instance: grafana-operator - app.kubernetes.io/version: "v5.21.4" + app.kubernetes.io/version: "v5.22.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: grafana-operator app.kubernetes.io/component: operator