--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.20.1 operatorframework.io/installed-alongside-9d879a41480c75ad: openshift-operators-redhat/loki-operator.v6.6.2 creationTimestamp: "2026-10-30T18:09:52Z" generation: 6 labels: app.kubernetes.io/instance: loki-operator-0.1.0 app.kubernetes.io/managed-by: operator-lifecycle-manager app.kubernetes.io/name: loki-operator app.kubernetes.io/part-of: cluster-logging app.kubernetes.io/version: 0.1.0 olm.managed: "true" operators.coreos.com/loki-operator.openshift-operators-redhat: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2026-10-30T18:09:52Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:operatorframework.io/installed-alongside-9d879a41480c75ad: {} f:labels: .: {} f:app.kubernetes.io/instance: {} f:app.kubernetes.io/managed-by: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:app.kubernetes.io/version: {} f:olm.managed: {} f:spec: f:conversion: .: {} f:strategy: {} f:webhook: .: {} f:clientConfig: .: {} f:service: .: {} f:namespace: {} f:path: {} f:port: {} f:conversionReviewVersions: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:scope: {} f:versions: {} manager: catalog operation: Update time: "2026-10-30T18:10:07Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:operators.coreos.com/loki-operator.openshift-operators-redhat: {} f:spec: f:conversion: f:webhook: f:clientConfig: f:caBundle: {} f:service: f:name: {} manager: olm operation: Update time: "2026-10-30T18:10:08Z" name: rulerconfigs.loki.grafana.com resourceVersion: "16694" uid: c455c5cc-4fc0-4572-8100-38b7020de268 spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ2RENDQVdLZ0F3SUJBZ0lJV3RNVVR4b2dWM1F3Q2dZSUtvWkl6ajBFQXdJd1FqRVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqRW9NQ1lHQTFVRUF4TWZiMnh0TFhObGJHWnphV2R1WldRdE5XRmtNekUwTkdZeApZVEl3TlRjM05EQWVGdzB5TmpFd016QXhPREE1TlRSYUZ3MHlPREV3TWpreE9EQTVOVFJhTUVJeEZqQVVCZ05WCkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0eEtEQW1CZ05WQkFNVEgyOXNiUzF6Wld4bWMybG5ibVZrTFRWaFpETXgKTkRSbU1XRXlNRFUzTnpRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSYWE2YVRRT3hRUEVzYQpOU3crdWFwOStmTHlwdGRjZitmbWRwSEd5RFZQVlF1Z2NsMlNiKzMveGw3UTNtTHpxZVc5T1o5UkZjZzlQM3I0CnJibW5qZVNubzBJd1FEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlYKSFE0RUZnUVVyeXhhbHMyVnJTUFQwaXpCVUhHcmFQQWtmMHd3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtVcgovTVFKMEFWb1BYK0ZkUnBtSk1kYVFwaXdvcEZYcFZuOWxma05Sb3RtQWlCankwUk9CYlV3TUZiYzFZdUVOK1lDClpOSktLUHdRYlZaNVQ5NW55Uy9keUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== service: name: loki-operator-controller-manager-service namespace: openshift-operators-redhat path: /convert port: 443 conversionReviewVersions: - v1 - v1beta1 group: loki.grafana.com names: kind: RulerConfig listKind: RulerConfigList plural: rulerconfigs singular: rulerconfig scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: RulerConfig is the Schema for the rulerconfigs API 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: RulerConfigSpec defines the desired state of Ruler properties: alertmanager: description: Defines alert manager configuration to notify on firing alerts. properties: client: description: Client configuration for reaching the alertmanager endpoint. properties: basicAuth: description: Basic authentication configuration for reaching the alertmanager endpoints. properties: password: description: The subject's password for the basic authentication configuration. type: string username: description: The subject's username for the basic authentication configuration. type: string type: object headerAuth: description: Header authentication configuration for reaching the alertmanager endpoints. properties: credentials: description: The credentials for the header authentication configuration. type: string credentialsFile: description: The credentials file for the Header authentication configuration. It is mutually exclusive with `credentials`. type: string type: description: The authentication type for the header authentication configuration. type: string type: object tls: description: TLS configuration for reaching the alertmanager endpoints. properties: caPath: description: The CA certificate file path for the TLS configuration. type: string certPath: description: The client-side certificate file path for the TLS configuration. type: string insecureSkipVerify: description: Skip validating server certificate. type: boolean keyPath: description: The client-side key file path for the TLS configuration. type: string serverName: description: The server name to validate in the alertmanager server certificates. type: string type: object type: object discovery: description: Defines the configuration for DNS-based discovery of AlertManager hosts. properties: enableSRV: description: Use DNS SRV records to discover Alertmanager hosts. type: boolean refreshInterval: default: 1m description: How long to wait between refreshing DNS resolutions of Alertmanager hosts. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object enableV2: description: If enabled, then requests to Alertmanager use the v2 API. type: boolean endpoints: description: |- List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as a separate group in the configuration. Multiple Alertmanagers in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery). items: type: string type: array externalLabels: additionalProperties: type: string description: Additional labels to add to all alerts. type: object externalUrl: description: URL for alerts return path. type: string notificationQueue: description: Defines the configuration for the notification queue to AlertManager hosts. properties: capacity: default: 10000 description: Capacity of the queue for notifications to be sent to the Alertmanager. format: int32 type: integer forGracePeriod: default: 10m description: |- Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than the grace period. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string forOutageTolerance: default: 1h description: Max time to tolerate outage for restoring "for" state of alert. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string resendDelay: default: 1m description: Minimum amount of time to wait before resending an alert to Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string timeout: default: 10s description: HTTP timeout duration when sending notifications to the Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object relabelConfigs: description: List of alert relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array required: - endpoints type: object evaluationInterval: default: 1m description: Interval on how frequently to evaluate rules. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string overrides: additionalProperties: description: RulerOverrides defines the overrides applied per-tenant. properties: alertmanager: description: AlertManagerOverrides defines the overrides to apply to the alertmanager config. properties: client: description: Client configuration for reaching the alertmanager endpoint. properties: basicAuth: description: Basic authentication configuration for reaching the alertmanager endpoints. properties: password: description: The subject's password for the basic authentication configuration. type: string username: description: The subject's username for the basic authentication configuration. type: string type: object headerAuth: description: Header authentication configuration for reaching the alertmanager endpoints. properties: credentials: description: The credentials for the header authentication configuration. type: string credentialsFile: description: The credentials file for the Header authentication configuration. It is mutually exclusive with `credentials`. type: string type: description: The authentication type for the header authentication configuration. type: string type: object tls: description: TLS configuration for reaching the alertmanager endpoints. properties: caPath: description: The CA certificate file path for the TLS configuration. type: string certPath: description: The client-side certificate file path for the TLS configuration. type: string insecureSkipVerify: description: Skip validating server certificate. type: boolean keyPath: description: The client-side key file path for the TLS configuration. type: string serverName: description: The server name to validate in the alertmanager server certificates. type: string type: object type: object discovery: description: Defines the configuration for DNS-based discovery of AlertManager hosts. properties: enableSRV: description: Use DNS SRV records to discover Alertmanager hosts. type: boolean refreshInterval: default: 1m description: How long to wait between refreshing DNS resolutions of Alertmanager hosts. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object enableV2: description: If enabled, then requests to Alertmanager use the v2 API. type: boolean endpoints: description: |- List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as a separate group in the configuration. Multiple Alertmanagers in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery). items: type: string type: array externalLabels: additionalProperties: type: string description: Additional labels to add to all alerts. type: object externalUrl: description: URL for alerts return path. type: string notificationQueue: description: Defines the configuration for the notification queue to AlertManager hosts. properties: capacity: default: 10000 description: Capacity of the queue for notifications to be sent to the Alertmanager. format: int32 type: integer forGracePeriod: default: 10m description: |- Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than the grace period. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string forOutageTolerance: default: 1h description: Max time to tolerate outage for restoring "for" state of alert. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string resendDelay: default: 1m description: Minimum amount of time to wait before resending an alert to Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string timeout: default: 10s description: HTTP timeout duration when sending notifications to the Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object relabelConfigs: description: List of alert relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array required: - endpoints type: object type: object description: Overrides defines the config overrides to be applied per-tenant. type: object pollInterval: default: 1m description: Interval on how frequently to poll for new rule definitions. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string remoteWrite: description: Defines a remote write endpoint to write recording rule metrics. properties: client: description: Defines the configuration for remote write client. properties: additionalHeaders: additionalProperties: type: string description: Additional HTTP headers to be sent along with each remote write request. type: object authorization: description: Type of authorzation to use to access the remote write endpoint enum: - basic - bearer type: string authorizationSecretName: description: Name of a secret in the namespace configured for authorization secrets. type: string followRedirects: default: true description: Configure whether HTTP requests follow HTTP 3xx redirects. type: boolean name: description: Name of the remote write config, which if specified must be unique among remote write configs. type: string proxyUrl: description: Optional proxy URL. type: string relabelConfigs: description: List of remote write relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array timeout: default: 30s description: Timeout for requests to the remote write endpoint. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string url: description: The URL of the endpoint to send samples to. type: string required: - authorization - authorizationSecretName - name - url type: object enabled: description: Enable remote-write functionality. type: boolean queue: description: Defines the configuration for remote write client queue. properties: batchSendDeadline: default: 5s description: Maximum time a sample will wait in buffer. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string capacity: default: 2500 description: Number of samples to buffer per shard before we block reading of more format: int32 type: integer maxBackOffPeriod: default: 100ms description: Maximum retry delay. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string maxSamplesPerSend: default: 500 description: Maximum number of samples per send. format: int32 type: integer maxShards: default: 200 description: Maximum number of shards, i.e. amount of concurrency. format: int32 type: integer minBackOffPeriod: default: 30ms description: Initial retry delay. Gets doubled for every retry. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string minShards: default: 200 description: Minimum number of shards, i.e. amount of concurrency. format: int32 type: integer type: object refreshPeriod: default: 10s description: Minimum period to wait between refreshing remote-write reconfigurations. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object type: object status: description: RulerConfigStatus defines the observed state of RulerConfig properties: conditions: description: Conditions of the RulerConfig health. 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 type: object type: object served: true storage: true subresources: status: {} - name: v1beta1 schema: openAPIV3Schema: description: RulerConfig is the Schema for the rulerconfigs API 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: RulerConfigSpec defines the desired state of Ruler properties: alertmanager: description: Defines alert manager configuration to notify on firing alerts. properties: client: description: Client configuration for reaching the alertmanager endpoint. properties: basicAuth: description: Basic authentication configuration for reaching the alertmanager endpoints. properties: password: description: The subject's password for the basic authentication configuration. type: string username: description: The subject's username for the basic authentication configuration. type: string type: object headerAuth: description: Header authentication configuration for reaching the alertmanager endpoints. properties: credentials: description: The credentials for the header authentication configuration. type: string credentialsFile: description: The credentials file for the Header authentication configuration. It is mutually exclusive with `credentials`. type: string type: description: The authentication type for the header authentication configuration. type: string type: object tls: description: TLS configuration for reaching the alertmanager endpoints. properties: caPath: description: The CA certificate file path for the TLS configuration. type: string certPath: description: The client-side certificate file path for the TLS configuration. type: string keyPath: description: The client-side key file path for the TLS configuration. type: string serverName: description: The server name to validate in the alertmanager server certificates. type: string type: object type: object discovery: description: Defines the configuration for DNS-based discovery of AlertManager hosts. properties: enableSRV: description: Use DNS SRV records to discover Alertmanager hosts. type: boolean refreshInterval: default: 1m description: How long to wait between refreshing DNS resolutions of Alertmanager hosts. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object enableV2: description: If enabled, then requests to Alertmanager use the v2 API. type: boolean endpoints: description: |- List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as a separate group in the configuration. Multiple Alertmanagers in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery). items: type: string type: array externalLabels: additionalProperties: type: string description: Additional labels to add to all alerts. type: object externalUrl: description: URL for alerts return path. type: string notificationQueue: description: Defines the configuration for the notification queue to AlertManager hosts. properties: capacity: default: 10000 description: Capacity of the queue for notifications to be sent to the Alertmanager. format: int32 type: integer forGracePeriod: default: 10m description: |- Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than the grace period. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string forOutageTolerance: default: 1h description: Max time to tolerate outage for restoring "for" state of alert. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string resendDelay: default: 1m description: Minimum amount of time to wait before resending an alert to Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string timeout: default: 10s description: HTTP timeout duration when sending notifications to the Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object relabelConfigs: description: List of alert relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array required: - endpoints type: object evaluationInterval: default: 1m description: Interval on how frequently to evaluate rules. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string overrides: additionalProperties: description: RulerOverrides defines the overrides applied per-tenant. properties: alertmanager: description: AlertManagerOverrides defines the overrides to apply to the alertmanager config. properties: client: description: Client configuration for reaching the alertmanager endpoint. properties: basicAuth: description: Basic authentication configuration for reaching the alertmanager endpoints. properties: password: description: The subject's password for the basic authentication configuration. type: string username: description: The subject's username for the basic authentication configuration. type: string type: object headerAuth: description: Header authentication configuration for reaching the alertmanager endpoints. properties: credentials: description: The credentials for the header authentication configuration. type: string credentialsFile: description: The credentials file for the Header authentication configuration. It is mutually exclusive with `credentials`. type: string type: description: The authentication type for the header authentication configuration. type: string type: object tls: description: TLS configuration for reaching the alertmanager endpoints. properties: caPath: description: The CA certificate file path for the TLS configuration. type: string certPath: description: The client-side certificate file path for the TLS configuration. type: string keyPath: description: The client-side key file path for the TLS configuration. type: string serverName: description: The server name to validate in the alertmanager server certificates. type: string type: object type: object discovery: description: Defines the configuration for DNS-based discovery of AlertManager hosts. properties: enableSRV: description: Use DNS SRV records to discover Alertmanager hosts. type: boolean refreshInterval: default: 1m description: How long to wait between refreshing DNS resolutions of Alertmanager hosts. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object enableV2: description: If enabled, then requests to Alertmanager use the v2 API. type: boolean endpoints: description: |- List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as a separate group in the configuration. Multiple Alertmanagers in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery). items: type: string type: array externalLabels: additionalProperties: type: string description: Additional labels to add to all alerts. type: object externalUrl: description: URL for alerts return path. type: string notificationQueue: description: Defines the configuration for the notification queue to AlertManager hosts. properties: capacity: default: 10000 description: Capacity of the queue for notifications to be sent to the Alertmanager. format: int32 type: integer forGracePeriod: default: 10m description: |- Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than the grace period. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string forOutageTolerance: default: 1h description: Max time to tolerate outage for restoring "for" state of alert. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string resendDelay: default: 1m description: Minimum amount of time to wait before resending an alert to Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string timeout: default: 10s description: HTTP timeout duration when sending notifications to the Alertmanager. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object relabelConfigs: description: List of alert relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array required: - endpoints type: object type: object description: Overrides defines the config overrides to be applied per-tenant. type: object pollInterval: default: 1m description: Interval on how frequently to poll for new rule definitions. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string remoteWrite: description: Defines a remote write endpoint to write recording rule metrics. properties: client: description: Defines the configuration for remote write client. properties: additionalHeaders: additionalProperties: type: string description: Additional HTTP headers to be sent along with each remote write request. type: object authorization: description: Type of authorzation to use to access the remote write endpoint enum: - basic - bearer type: string authorizationSecretName: description: Name of a secret in the namespace configured for authorization secrets. type: string followRedirects: default: true description: Configure whether HTTP requests follow HTTP 3xx redirects. type: boolean name: description: Name of the remote write config, which if specified must be unique among remote write configs. type: string proxyUrl: description: Optional proxy URL. type: string relabelConfigs: description: List of remote write relabel configurations. items: description: |- RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `` and `` sections of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs properties: action: default: replace description: Action to perform based on regex matching. Default is 'replace' enum: - drop - hashmod - keep - labeldrop - labelkeep - labelmap - replace type: string modulus: description: Modulus to take of the hash of the source label values. format: int64 type: integer regex: default: (.*) description: Regular expression against which the extracted value is matched. Default is '(.*)' type: string replacement: default: $1 description: |- Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1' type: string separator: default: ; description: Separator placed between concatenated source label values. default is ';'. type: string sourceLabels: description: |- The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. items: type: string type: array targetLabel: description: |- Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. type: string required: - sourceLabels type: object type: array timeout: default: 30s description: Timeout for requests to the remote write endpoint. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string url: description: The URL of the endpoint to send samples to. type: string required: - authorization - authorizationSecretName - name - url type: object enabled: description: Enable remote-write functionality. type: boolean queue: description: Defines the configuration for remote write client queue. properties: batchSendDeadline: default: 5s description: Maximum time a sample will wait in buffer. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string capacity: default: 2500 description: Number of samples to buffer per shard before we block reading of more format: int32 type: integer maxBackOffPeriod: default: 100ms description: Maximum retry delay. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string maxSamplesPerSend: default: 500 description: Maximum number of samples per send. format: int32 type: integer maxShards: default: 200 description: Maximum number of shards, i.e. amount of concurrency. format: int32 type: integer minBackOffPeriod: default: 30ms description: Initial retry delay. Gets doubled for every retry. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string minShards: default: 200 description: Minimum number of shards, i.e. amount of concurrency. format: int32 type: integer type: object refreshPeriod: default: 10s description: Minimum period to wait between refreshing remote-write reconfigurations. pattern: ((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0) type: string type: object type: object status: description: RulerConfigStatus defines the observed state of RulerConfig properties: conditions: description: Conditions of the RulerConfig health. 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 type: object type: object served: false storage: false subresources: status: {} status: acceptedNames: kind: RulerConfig listKind: RulerConfigList plural: rulerconfigs singular: rulerconfig conditions: - lastTransitionTime: "2026-10-30T18:09:52Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-10-30T18:09:52Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1