|
| 1 | +--- |
| 2 | +apiVersion: apiextensions.k8s.io/v1 |
| 3 | +kind: CustomResourceDefinition |
| 4 | +metadata: |
| 5 | + annotations: |
| 6 | + api-approved.openshift.io: https://github.com/openshift/api/pull/1406 |
| 7 | + description: OpenShift Monitoring alerting rules |
| 8 | + include.release.openshift.io/ibm-cloud-managed: "true" |
| 9 | + include.release.openshift.io/self-managed-high-availability: "true" |
| 10 | + include.release.openshift.io/single-node-developer: "true" |
| 11 | + creationTimestamp: "2023-12-06T09:17:48Z" |
| 12 | + generation: 1 |
| 13 | + labels: |
| 14 | + app.kubernetes.io/managed-by: cluster-version-operator |
| 15 | + app.kubernetes.io/part-of: openshift-monitoring |
| 16 | + managedFields: |
| 17 | + - apiVersion: apiextensions.k8s.io/v1 |
| 18 | + fieldsType: FieldsV1 |
| 19 | + fieldsV1: |
| 20 | + f:metadata: |
| 21 | + f:annotations: |
| 22 | + .: {} |
| 23 | + f:api-approved.openshift.io: {} |
| 24 | + f:description: {} |
| 25 | + f:include.release.openshift.io/ibm-cloud-managed: {} |
| 26 | + f:include.release.openshift.io/self-managed-high-availability: {} |
| 27 | + f:include.release.openshift.io/single-node-developer: {} |
| 28 | + f:labels: |
| 29 | + .: {} |
| 30 | + f:app.kubernetes.io/managed-by: {} |
| 31 | + f:app.kubernetes.io/part-of: {} |
| 32 | + f:ownerReferences: |
| 33 | + .: {} |
| 34 | + k:{"uid":"a7216904-f9ea-48f0-a63e-5356267ade74"}: {} |
| 35 | + f:spec: |
| 36 | + f:conversion: |
| 37 | + .: {} |
| 38 | + f:strategy: {} |
| 39 | + f:group: {} |
| 40 | + f:names: |
| 41 | + f:kind: {} |
| 42 | + f:listKind: {} |
| 43 | + f:plural: {} |
| 44 | + f:singular: {} |
| 45 | + f:scope: {} |
| 46 | + f:versions: {} |
| 47 | + manager: cluster-version-operator |
| 48 | + operation: Update |
| 49 | + time: "2023-12-06T09:17:48Z" |
| 50 | + - apiVersion: apiextensions.k8s.io/v1 |
| 51 | + fieldsType: FieldsV1 |
| 52 | + fieldsV1: |
| 53 | + f:status: |
| 54 | + f:acceptedNames: |
| 55 | + f:kind: {} |
| 56 | + f:listKind: {} |
| 57 | + f:plural: {} |
| 58 | + f:singular: {} |
| 59 | + f:conditions: |
| 60 | + k:{"type":"Established"}: |
| 61 | + .: {} |
| 62 | + f:lastTransitionTime: {} |
| 63 | + f:message: {} |
| 64 | + f:reason: {} |
| 65 | + f:status: {} |
| 66 | + f:type: {} |
| 67 | + k:{"type":"NamesAccepted"}: |
| 68 | + .: {} |
| 69 | + f:lastTransitionTime: {} |
| 70 | + f:message: {} |
| 71 | + f:reason: {} |
| 72 | + f:status: {} |
| 73 | + f:type: {} |
| 74 | + manager: kube-apiserver |
| 75 | + operation: Update |
| 76 | + subresource: status |
| 77 | + time: "2023-12-06T09:17:48Z" |
| 78 | + name: alertingrules.monitoring.openshift.io |
| 79 | + ownerReferences: |
| 80 | + - apiVersion: config.openshift.io/v1 |
| 81 | + controller: true |
| 82 | + kind: ClusterVersion |
| 83 | + name: version |
| 84 | + uid: a7216904-f9ea-48f0-a63e-5356267ade74 |
| 85 | + resourceVersion: "681" |
| 86 | + uid: 516259cd-ef62-4fba-a08d-3ff1430cf977 |
| 87 | +spec: |
| 88 | + conversion: |
| 89 | + strategy: None |
| 90 | + group: monitoring.openshift.io |
| 91 | + names: |
| 92 | + kind: AlertingRule |
| 93 | + listKind: AlertingRuleList |
| 94 | + plural: alertingrules |
| 95 | + singular: alertingrule |
| 96 | + scope: Namespaced |
| 97 | + versions: |
| 98 | + - name: v1 |
| 99 | + schema: |
| 100 | + openAPIV3Schema: |
| 101 | + description: "AlertingRule represents a set of user-defined Prometheus rule |
| 102 | + groups containing alerting rules. This resource is the supported method |
| 103 | + for cluster admins to create alerts based on metrics recorded by the platform |
| 104 | + monitoring stack in OpenShift, i.e. the Prometheus instance deployed to |
| 105 | + the openshift-monitoring namespace. You might use this to create custom |
| 106 | + alerting rules not shipped with OpenShift based on metrics from components |
| 107 | + such as the node_exporter, which provides machine-level metrics such as |
| 108 | + CPU usage, or kube-state-metrics, which provides metrics on Kubernetes usage. |
| 109 | + \n The API is mostly compatible with the upstream PrometheusRule type from |
| 110 | + the prometheus-operator. The primary difference being that recording rules |
| 111 | + are not allowed here -- only alerting rules. For each AlertingRule resource |
| 112 | + created, a corresponding PrometheusRule will be created in the openshift-monitoring |
| 113 | + namespace. OpenShift requires admins to use the AlertingRule resource rather |
| 114 | + than the upstream type in order to allow better OpenShift specific defaulting |
| 115 | + and validation, while not modifying the upstream APIs directly. \n You can |
| 116 | + find upstream API documentation for PrometheusRule resources here: \n https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md |
| 117 | + \n Compatibility level 1: Stable within a major release for a minimum of |
| 118 | + 12 months or 3 minor releases (whichever is longer)." |
| 119 | + properties: |
| 120 | + apiVersion: |
| 121 | + description: 'APIVersion defines the versioned schema of this representation |
| 122 | + of an object. Servers should convert recognized schemas to the latest |
| 123 | + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' |
| 124 | + type: string |
| 125 | + kind: |
| 126 | + description: 'Kind is a string value representing the REST resource this |
| 127 | + object represents. Servers may infer this from the endpoint the client |
| 128 | + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' |
| 129 | + type: string |
| 130 | + metadata: |
| 131 | + type: object |
| 132 | + spec: |
| 133 | + description: spec describes the desired state of this AlertingRule object. |
| 134 | + properties: |
| 135 | + groups: |
| 136 | + description: "groups is a list of grouped alerting rules. Rule groups |
| 137 | + are the unit at which Prometheus parallelizes rule processing. All |
| 138 | + rules in a single group share a configured evaluation interval. |
| 139 | + \ All rules in the group will be processed together on this interval, |
| 140 | + sequentially, and all rules will be processed. \n It's common to |
| 141 | + group related alerting rules into a single AlertingRule resources, |
| 142 | + and within that resource, closely related alerts, or simply alerts |
| 143 | + with the same interval, into individual groups. You are also free |
| 144 | + to create AlertingRule resources with only a single rule group, |
| 145 | + but be aware that this can have a performance impact on Prometheus |
| 146 | + if the group is extremely large or has very complex query expressions |
| 147 | + to evaluate. Spreading very complex rules across multiple groups |
| 148 | + to allow them to be processed in parallel is also a common use-case." |
| 149 | + items: |
| 150 | + description: RuleGroup is a list of sequentially evaluated alerting |
| 151 | + rules. |
| 152 | + properties: |
| 153 | + interval: |
| 154 | + description: 'interval is how often rules in the group are evaluated. If |
| 155 | + not specified, it defaults to the global.evaluation_interval |
| 156 | + configured in Prometheus, which itself defaults to 30 seconds. You |
| 157 | + can check if this value has been modified from the default |
| 158 | + on your cluster by inspecting the platform Prometheus configuration: |
| 159 | + The relevant field in that resource is: spec.evaluationInterval' |
| 160 | + maxLength: 2048 |
| 161 | + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ |
| 162 | + type: string |
| 163 | + name: |
| 164 | + description: name is the name of the group. |
| 165 | + maxLength: 2048 |
| 166 | + minLength: 1 |
| 167 | + type: string |
| 168 | + rules: |
| 169 | + description: rules is a list of sequentially evaluated alerting |
| 170 | + rules. Prometheus may process rule groups in parallel, but |
| 171 | + rules within a single group are always processed sequentially, |
| 172 | + and all rules are processed. |
| 173 | + items: |
| 174 | + description: 'Rule describes an alerting rule. See Prometheus |
| 175 | + documentation: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules' |
| 176 | + properties: |
| 177 | + alert: |
| 178 | + description: alert is the name of the alert. Must be a |
| 179 | + valid label value, i.e. may contain any Unicode character. |
| 180 | + maxLength: 2048 |
| 181 | + minLength: 1 |
| 182 | + type: string |
| 183 | + annotations: |
| 184 | + additionalProperties: |
| 185 | + type: string |
| 186 | + description: annotations to add to each alert. These |
| 187 | + are values that can be used to store longer additional |
| 188 | + information that you won't query on, such as alert descriptions |
| 189 | + or runbook links. |
| 190 | + type: object |
| 191 | + expr: |
| 192 | + anyOf: |
| 193 | + - type: integer |
| 194 | + - type: string |
| 195 | + description: 'expr is the PromQL expression to evaluate. |
| 196 | + Every evaluation cycle this is evaluated at the current |
| 197 | + time, and all resultant time series become pending or |
| 198 | + firing alerts. This is most often a string representing |
| 199 | + a PromQL expression, e.g.: mapi_current_pending_csr |
| 200 | + > mapi_max_pending_csr In rare cases this could be a |
| 201 | + simple integer, e.g. a simple "1" if the intent is to |
| 202 | + create an alert that is always firing. This is sometimes |
| 203 | + used to create an always-firing "Watchdog" alert in |
| 204 | + order to ensure the alerting pipeline is functional.' |
| 205 | + x-kubernetes-int-or-string: true |
| 206 | + for: |
| 207 | + description: for is the time period after which alerts |
| 208 | + are considered firing after first returning results. Alerts |
| 209 | + which have not yet fired for long enough are considered |
| 210 | + pending. |
| 211 | + maxLength: 2048 |
| 212 | + pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ |
| 213 | + type: string |
| 214 | + labels: |
| 215 | + additionalProperties: |
| 216 | + type: string |
| 217 | + description: 'labels to add or overwrite for each alert. The |
| 218 | + results of the PromQL expression for the alert will |
| 219 | + result in an existing set of labels for the alert, after |
| 220 | + evaluating the expression, for any label specified here |
| 221 | + with the same name as a label in that set, the label |
| 222 | + here wins and overwrites the previous value. These |
| 223 | + should typically be short identifying values that may |
| 224 | + be useful to query against. A common example is the |
| 225 | + alert severity, where one sets `severity: warning` under |
| 226 | + the `labels` key:' |
| 227 | + type: object |
| 228 | + required: |
| 229 | + - alert |
| 230 | + - expr |
| 231 | + type: object |
| 232 | + minItems: 1 |
| 233 | + type: array |
| 234 | + required: |
| 235 | + - name |
| 236 | + - rules |
| 237 | + type: object |
| 238 | + minItems: 1 |
| 239 | + type: array |
| 240 | + x-kubernetes-list-map-keys: |
| 241 | + - name |
| 242 | + x-kubernetes-list-type: map |
| 243 | + required: |
| 244 | + - groups |
| 245 | + type: object |
| 246 | + status: |
| 247 | + description: status describes the current state of this AlertOverrides |
| 248 | + object. |
| 249 | + properties: |
| 250 | + observedGeneration: |
| 251 | + description: observedGeneration is the last generation change you've |
| 252 | + dealt with. |
| 253 | + format: int64 |
| 254 | + type: integer |
| 255 | + prometheusRule: |
| 256 | + description: prometheusRule is the generated PrometheusRule for this |
| 257 | + AlertingRule. Each AlertingRule instance results in a generated |
| 258 | + PrometheusRule object in the same namespace, which is always the |
| 259 | + openshift-monitoring namespace. |
| 260 | + properties: |
| 261 | + name: |
| 262 | + description: name of the referenced PrometheusRule. |
| 263 | + maxLength: 2048 |
| 264 | + minLength: 1 |
| 265 | + type: string |
| 266 | + required: |
| 267 | + - name |
| 268 | + type: object |
| 269 | + type: object |
| 270 | + required: |
| 271 | + - spec |
| 272 | + type: object |
| 273 | + served: true |
| 274 | + storage: true |
| 275 | + subresources: |
| 276 | + status: {} |
| 277 | +status: |
| 278 | + acceptedNames: |
| 279 | + kind: AlertingRule |
| 280 | + listKind: AlertingRuleList |
| 281 | + plural: alertingrules |
| 282 | + singular: alertingrule |
| 283 | + conditions: |
| 284 | + - lastTransitionTime: "2023-12-06T09:17:48Z" |
| 285 | + message: no conflicts found |
| 286 | + reason: NoConflicts |
| 287 | + status: "True" |
| 288 | + type: NamesAccepted |
| 289 | + - lastTransitionTime: "2023-12-06T09:17:48Z" |
| 290 | + message: the initial names have been accepted |
| 291 | + reason: InitialNamesAccepted |
| 292 | + status: "True" |
| 293 | + type: Established |
| 294 | + storedVersions: |
| 295 | + - v1 |
0 commit comments