charts/operator/crds/monitoring.googleapis.com_rules.yaml (276 lines of code) (raw):
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1-0.20250103184936-50893dee96da
name: rules.monitoring.googleapis.com
spec:
group: monitoring.googleapis.com
names:
kind: Rules
listKind: RulesList
plural: rules
singular: rules
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: |-
Rules defines Prometheus alerting and recording rules that are scoped
to the namespace of the resource. Only metric data from this namespace is processed
and all rule results have their project_id, cluster, and namespace label preserved
for query processing.
If the location label is not preserved by the rule, it defaults to the cluster's location.
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: Specification of rules to record and alert on.
properties:
groups:
description: A list of Prometheus rule groups.
items:
description: |-
RuleGroup declares rules in the Prometheus format:
https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
properties:
interval:
default: 1m
description: The interval at which to evaluate the rules. Must
be a valid Prometheus duration.
format: duration
type: string
name:
description: The name of the rule group.
type: string
rules:
description: A list of rules that are executed sequentially
as part of this group.
items:
description: |-
Rule is a single rule in the Prometheus format:
https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
properties:
alert:
description: |-
Name of the alert to evaluate the expression as.
Only one of `record` and `alert` must be set.
type: string
annotations:
additionalProperties:
type: string
description: |-
A set of annotations to attach to alerts produced by the query expression.
Only valid if `alert` is set.
type: object
expr:
description: The PromQL expression to evaluate.
type: string
for:
description: |-
The duration to wait before a firing alert produced by this rule is sent to Alertmanager.
Only valid if `alert` is set.
format: duration
type: string
labels:
additionalProperties:
type: string
description: A set of labels to attach to the result of
the query expression.
type: object
record:
description: |-
Record the result of the expression to this metric name.
Only one of `record` and `alert` must be set.
pattern: ^[a-zA-Z_:][a-zA-Z0-9_:]*$
type: string
required:
- expr
type: object
x-kubernetes-validations:
- message: Must set exactly one of Record or Alert
rule: '(has(self.record) ? 1 : 0) + (has(self.alert) ? 1
: 0) == 1'
- message: Annotations are only allowed for alerting rules
rule: '!has(self.annotations) || has(self.alert)'
minItems: 1
type: array
required:
- name
- rules
type: object
type: array
required:
- groups
type: object
status:
description: Most recently observed status of the resource.
properties:
conditions:
description: Represents the latest available observations of a podmonitor's
current state.
items:
description: MonitoringCondition describes the condition of a PodMonitoring.
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human-readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: MonitoringConditionType is the type of MonitoringCondition.
type: string
required:
- status
- type
type: object
type: array
observedGeneration:
description: The generation observed by the controller.
format: int64
type: integer
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
- deprecated: true
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
Rules defines Prometheus alerting and recording rules that are scoped
to the namespace of the resource. Only metric data from this namespace is processed
and all rule results have their project_id, cluster, and namespace label preserved
for query processing.
If the location label is not preserved by the rule, it defaults to the cluster's location.
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: Specification of rules to record and alert on.
properties:
groups:
description: A list of Prometheus rule groups.
items:
description: |-
RuleGroup declares rules in the Prometheus format:
https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
properties:
interval:
description: The interval at which to evaluate the rules. Must
be a valid Prometheus duration.
type: string
name:
description: The name of the rule group.
type: string
rules:
description: A list of rules that are executed sequentially
as part of this group.
items:
description: |-
Rule is a single rule in the Prometheus format:
https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
properties:
alert:
description: |-
Name of the alert to evaluate the expression as.
Only one of `record` and `alert` must be set.
type: string
annotations:
additionalProperties:
type: string
description: |-
A set of annotations to attach to alerts produced by the query expression.
Only valid if `alert` is set.
type: object
expr:
description: The PromQL expression to evaluate.
type: string
for:
description: |-
The duration to wait before a firing alert produced by this rule is sent to Alertmanager.
Only valid if `alert` is set.
type: string
labels:
additionalProperties:
type: string
description: A set of labels to attach to the result of
the query expression.
type: object
record:
description: |-
Record the result of the expression to this metric name.
Only one of `record` and `alert` must be set.
type: string
required:
- expr
type: object
type: array
required:
- interval
- name
- rules
type: object
type: array
required:
- groups
type: object
status:
description: Most recently observed status of the resource.
type: object
required:
- spec
type: object
served: true
storage: false
subresources:
status: {}