@leverege/build-tools 2.96.8 → 2.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/.vscode/launch.json +21 -1
  2. package/package.json +10 -10
  3. package/src/Utils.mjs +6 -1
  4. package/src/artifacts/Utils.mjs +5 -2
  5. package/src/build-cnpg-image.mjs +0 -1
  6. package/src/chart-compass.yaml +1 -1
  7. package/src/chart-to-registry.mjs +10 -1
  8. package/src/helm-charts/api-server/values-local.yaml +3 -0
  9. package/src/helm-charts/cnpg-db-psql-stack/cluster.yaml.ovh +37 -32
  10. package/src/helm-charts/cnpg-db-psql-stack/pooler.yaml +2 -0
  11. package/src/helm-charts/cnpg-db-recovery/cluster.yaml.ovh +1 -1
  12. package/src/helm-charts/cnpg-db-tsdb-basic/cluster.yaml.ovh +50 -46
  13. package/src/helm-charts/cnpg-db-tsdb-basic/pooler.yaml +2 -0
  14. package/src/helm-charts/cnpg-db-tsdb-dense/cluster.yaml.ovh +55 -47
  15. package/src/helm-charts/cnpg-db-tsdb-dense/pooler.yaml +2 -0
  16. package/src/helm-charts/cnpg-operator/helmup.bootstrap +8 -0
  17. package/src/helm-charts/cnpg-operator/helmup.plugin +29 -4
  18. package/src/helm-charts/db-curator/values-local.yaml +9 -1
  19. package/src/helm-charts/elasticsearch8/elasticsearch-local.yaml +54 -51
  20. package/src/helm-charts/emailer/values-local.yaml +4 -1
  21. package/src/helm-charts/messenger/values-local.yaml +1 -5
  22. package/src/helm-charts/pgbouncer/values-local.yaml +8 -3
  23. package/src/helm-charts/prom-operator/helmup.bootstrap +8 -5
  24. package/src/helm-charts/prom-operator/helmup.plugin +1 -1
  25. package/src/helm-charts/prom-operator/prometheus-stack.yaml.ovh +51 -11
  26. package/src/helm-charts/prom-operator/rules/elasticsearch-rules.yaml +1 -1
  27. package/src/helm-charts/prom-operator/rules/kubestate-rules.yaml +1 -1
  28. package/src/helm-charts/push-notifier/values-local.yaml +8 -0
  29. package/src/helm-charts/redis/values-local.yaml +2 -1
  30. package/src/helm-charts/traefik/values-local.yaml +1 -1
  31. package/src/helm-charts/transponder-dh/values-local.yaml +1 -0
  32. package/src/helm-charts/transponder-tsdb/values-local.yaml +1 -0
  33. package/src/helm-charts/velero/helmup.plugin +2 -2
  34. package/src/helm-charts/velero/values-local.yaml +17 -15
  35. package/src/helmdn.sh +1 -1
  36. package/src/helmup.sh +3 -3
  37. package/src/init-my-chart/Chartwright.mjs +69 -0
  38. package/src/init-my-chart/init-my-chart-v1.mjs +124 -0
  39. package/src/init-my-chart/init-my-chart.mjs +80 -0
  40. package/src/init-my-chart/leaf-chart-templates/Chart.yaml.hbs +10 -0
  41. package/src/init-my-chart/leaf-chart-templates/templates/configmap.yaml +1 -0
  42. package/src/init-my-chart/leaf-chart-templates/templates/deployment.yaml +1 -0
  43. package/src/init-my-chart/leaf-chart-templates/templates/hpa.yaml +1 -0
  44. package/src/init-my-chart/leaf-chart-templates/templates/pdb.yaml +1 -0
  45. package/src/init-my-chart/leaf-chart-templates/templates/service.yaml +1 -0
  46. package/src/init-my-chart/leaf-chart-templates/templates/serviceaccount.yaml +1 -0
  47. package/src/init-my-chart/leaf-chart-templates/templates/servicemonitor.yaml +1 -0
  48. package/src/init-my-chart/leaf-chart-templates/values.schema.json +623 -0
  49. package/src/init-my-chart/leaf-chart-templates/values.yaml.hbs +135 -0
  50. package/src/init-my-chart/legacy-helm-template/Chart.yaml +5 -0
  51. package/src/init-my-chart/legacy-helm-template/templates/NOTES.txt +5 -0
  52. package/src/init-my-chart/legacy-helm-template/templates/_helpers.tpl +135 -0
  53. package/src/init-my-chart/legacy-helm-template/templates/configmap.yaml +10 -0
  54. package/src/init-my-chart/legacy-helm-template/templates/deployment.yaml +125 -0
  55. package/src/init-my-chart/legacy-helm-template/templates/hpa.yaml +26 -0
  56. package/src/init-my-chart/legacy-helm-template/templates/ingressroute.yaml +18 -0
  57. package/src/init-my-chart/legacy-helm-template/templates/pdb.yaml +22 -0
  58. package/src/init-my-chart/legacy-helm-template/templates/service.yaml +15 -0
  59. package/src/init-my-chart/legacy-helm-template/templates/serviceaccount.yaml +13 -0
  60. package/src/init-my-chart/legacy-helm-template/templates/servicemonitor.yaml +23 -0
  61. package/src/init-my-chart/legacy-helm-template/values.yaml +152 -0
  62. package/src/testOauthLogic.mjs +12 -0
  63. package/leverege-build-tools-2.21.13.tgz +0 -0
  64. package/lib/server/build-tools.js +0 -138
  65. package/lib/server/firebaseDeploy.js +0 -195
  66. package/lib/server/firebaseServe.js +0 -116
  67. package/lib/server/getfbcfg.js +0 -25
  68. package/lib/server/getjson.js +0 -70
  69. package/lib/server/overwhelm.js +0 -447
  70. package/lib/server/push-my-chart.js +0 -18
  71. package/lib/server/refresh-npm-token.js +0 -135
  72. package/lib/server/tag-release.js +0 -681
  73. package/lib/server/unleash.js +0 -50
  74. package/lib/web/build-tools.js +0 -138
  75. package/lib/web/firebaseDeploy.js +0 -195
  76. package/lib/web/firebaseServe.js +0 -116
  77. package/lib/web/getfbcfg.js +0 -25
  78. package/lib/web/getjson.js +0 -70
  79. package/lib/web/overwhelm.js +0 -447
  80. package/lib/web/push-my-chart.js +0 -18
  81. package/lib/web/refresh-npm-token.js +0 -135
  82. package/lib/web/tag-release.js +0 -681
  83. package/lib/web/unleash.js +0 -50
  84. package/src/helm-charts/prom-operator/rules/awesome-base/elasticsearch-rules.yaml +0 -219
  85. package/src/helm-charts/prom-operator/rules/awesome-base/google-cadvisor.yaml +0 -108
  86. package/src/helm-charts/prom-operator/rules/awesome-base/kubestate-exporter.yaml +0 -394
  87. package/src/helm-charts/prom-operator/rules/awesome-base/prometheus-rules.yaml +0 -318
  88. package/src/helm-charts/prom-operator/rules/awesome-base/redis-rules.yaml +0 -142
  89. package/src/helm-charts/prom-operator/rules/awesome-base/traefik-rules.yaml +0 -43
  90. package/src/init-my-chart.mjs +0 -18
@@ -1,394 +0,0 @@
1
- # https://samber.github.io/awesome-prometheus-alerts/rules#kubernetes
2
- apiVersion: monitoring.coreos.com/v1
3
- kind: PrometheusRule
4
- metadata:
5
- name: kubestate-exporter
6
- spec:
7
- groups:
8
- - name: Kubestate (awesome) # KubestateExporter-rules
9
- rules:
10
- - alert: KubernetesNodeNotReady
11
- expr: kube_node_status_condition{condition="Ready",status="true"} == 0
12
- for: 10m
13
- labels:
14
- severity: critical
15
- annotations:
16
- summary: Kubernetes Node ready (node {{ $labels.node }})
17
- description: |-
18
- Node {{ $labels.node }} has been unready for a long time
19
- VALUE = {{ $value }}
20
- LABELS = {{ $labels }}
21
- - alert: KubernetesNodeMemoryPressure
22
- expr: kube_node_status_condition{condition="MemoryPressure",status="true"} == 1
23
- for: 2m
24
- labels:
25
- severity: critical
26
- annotations:
27
- summary: Kubernetes memory pressure (node {{ $labels.node }})
28
- description: |-
29
- Node {{ $labels.node }} has MemoryPressure condition
30
- VALUE = {{ $value }}
31
- LABELS = {{ $labels }}
32
- - alert: KubernetesNodeDiskPressure
33
- expr: kube_node_status_condition{condition="DiskPressure",status="true"} == 1
34
- for: 2m
35
- labels:
36
- severity: critical
37
- annotations:
38
- summary: Kubernetes disk pressure (node {{ $labels.node }})
39
- description: |-
40
- Node {{ $labels.node }} has DiskPressure condition
41
- VALUE = {{ $value }}
42
- LABELS = {{ $labels }}
43
- - alert: KubernetesNodeNetworkUnavailable
44
- expr: kube_node_status_condition{condition="NetworkUnavailable",status="true"} == 1
45
- for: 2m
46
- labels:
47
- severity: critical
48
- annotations:
49
- summary: Kubernetes Node network unavailable (instance {{ $labels.instance }})
50
- description: |-
51
- Node {{ $labels.node }} has NetworkUnavailable condition
52
- VALUE = {{ $value }}
53
- LABELS = {{ $labels }}
54
- - alert: KubernetesNodeOutOfPodCapacity
55
- expr: sum by (node) ((kube_pod_status_phase{phase="Running"} == 1) + on(uid, instance) group_left(node) (0 * kube_pod_info{pod_template_hash=""})) / sum by (node) (kube_node_status_allocatable{resource="pods"}) * 100 > 90
56
- for: 2m
57
- labels:
58
- severity: warning
59
- annotations:
60
- summary: Kubernetes Node out of pod capacity (instance {{ $labels.instance }})
61
- description: |-
62
- Node {{ $labels.node }} is out of pod capacity
63
- VALUE = {{ $value }}
64
- LABELS = {{ $labels }}
65
- - alert: KubernetesContainerOomKiller
66
- expr: (kube_pod_container_status_restarts_total - kube_pod_container_status_restarts_total offset 10m >= 1) and ignoring (reason) min_over_time(kube_pod_container_status_last_terminated_reason{reason="OOMKilled"}[10m]) == 1
67
- for: 0m
68
- labels:
69
- severity: warning
70
- annotations:
71
- summary: Kubernetes container oom killer ({{ $labels.namespace }}/{{ $labels.pod }}:{{ $labels.container }})
72
- description: |-
73
- Container {{ $labels.container }} in pod {{ $labels.namespace }}/{{ $labels.pod }} has been OOMKilled {{ $value }} times in the last 10 minutes.
74
- VALUE = {{ $value }}
75
- LABELS = {{ $labels }}
76
- - alert: KubernetesJobFailed
77
- expr: kube_job_status_failed > 0
78
- for: 0m
79
- labels:
80
- severity: warning
81
- annotations:
82
- summary: Kubernetes Job failed ({{ $labels.namespace }}/{{ $labels.job_name }})
83
- description: |-
84
- Job {{ $labels.namespace }}/{{ $labels.job_name }} failed to complete
85
- VALUE = {{ $value }}
86
- LABELS = {{ $labels }}
87
- - alert: KubernetesJobNotStarting
88
- expr: kube_job_status_active == 0 and kube_job_status_failed == 0 and kube_job_status_succeeded == 0 and (time() - kube_job_status_start_time) > 600
89
- for: 0m
90
- labels:
91
- severity: warning
92
- annotations:
93
- summary: Kubernetes Job not starting ({{ $labels.namespace }}/{{ $labels.job_name }})
94
- description: |-
95
- Job {{ $labels.namespace }}/{{ $labels.job_name }} did not start for 10 minutes
96
- VALUE = {{ $value }}
97
- LABELS = {{ $labels }}
98
- - alert: KubernetesCronjobSuspended
99
- expr: kube_cronjob_spec_suspend != 0
100
- for: 0m
101
- labels:
102
- severity: warning
103
- annotations:
104
- summary: Kubernetes CronJob suspended ({{ $labels.namespace }}/{{ $labels.cronjob }})
105
- description: |-
106
- CronJob {{ $labels.namespace }}/{{ $labels.cronjob }} is suspended
107
- VALUE = {{ $value }}
108
- LABELS = {{ $labels }}
109
- - alert: KubernetesPersistentvolumeclaimPending
110
- expr: kube_persistentvolumeclaim_status_phase{phase="Pending"} == 1
111
- for: 2m
112
- labels:
113
- severity: warning
114
- annotations:
115
- summary: Kubernetes PersistentVolumeClaim pending ({{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }})
116
- description: |-
117
- PersistentVolumeClaim {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is pending
118
- VALUE = {{ $value }}
119
- LABELS = {{ $labels }}
120
- - alert: KubernetesVolumeOutOfDiskSpace
121
- expr: kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes * 100 < 10
122
- for: 2m
123
- labels:
124
- severity: warning
125
- annotations:
126
- summary: Kubernetes Volume out of disk space (instance {{ $labels.instance }})
127
- description: |-
128
- Volume is almost full (< 10% left)
129
- VALUE = {{ $value }}
130
- LABELS = {{ $labels }}
131
- - alert: KubernetesVolumeFullInFourDays
132
- expr: predict_linear(kubelet_volume_stats_available_bytes[6h:5m], 4 * 24 * 3600) < 0
133
- for: 0m
134
- labels:
135
- severity: critical
136
- annotations:
137
- summary: Kubernetes Volume full in four days (instance {{ $labels.instance }})
138
- description: |-
139
- Volume under {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is expected to fill up within four days. Currently {{ $value | humanize }}% is available.
140
- VALUE = {{ $value }}
141
- LABELS = {{ $labels }}
142
- - alert: KubernetesPersistentvolumeError
143
- expr: kube_persistentvolume_status_phase{phase=~"Failed|Pending", job="kube-state-metrics"} > 0
144
- for: 0m
145
- labels:
146
- severity: critical
147
- annotations:
148
- summary: Kubernetes PersistentVolumeClaim pending ({{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }})
149
- description: |-
150
- Persistent volume {{ $labels.persistentvolume }} is in bad state
151
- VALUE = {{ $value }}
152
- LABELS = {{ $labels }}
153
- - alert: KubernetesStatefulsetDown
154
- expr: kube_statefulset_replicas != kube_statefulset_status_replicas_ready > 0
155
- for: 1m
156
- labels:
157
- severity: critical
158
- annotations:
159
- summary: Kubernetes StatefulSet down ({{ $labels.namespace }}/{{ $labels.statefulset }})
160
- description: |-
161
- StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} went down
162
- VALUE = {{ $value }}
163
- LABELS = {{ $labels }}
164
- - alert: KubernetesHpaScaleInability
165
- expr: (kube_horizontalpodautoscaler_spec_max_replicas - kube_horizontalpodautoscaler_status_desired_replicas) * on (horizontalpodautoscaler,namespace) (kube_horizontalpodautoscaler_status_condition{condition="ScalingLimited", status="true"} == 1) == 0
166
- for: 2m
167
- labels:
168
- severity: warning
169
- annotations:
170
- summary: Kubernetes HPA scale inability (instance {{ $labels.instance }})
171
- description: |-
172
- HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is unable to scale
173
- VALUE = {{ $value }}
174
- LABELS = {{ $labels }}
175
- - alert: KubernetesHpaMetricsUnavailability
176
- expr: kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
177
- for: 0m
178
- labels:
179
- severity: warning
180
- annotations:
181
- summary: Kubernetes HPA metrics unavailability (instance {{ $labels.instance }})
182
- description: |-
183
- HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is unable to collect metrics
184
- VALUE = {{ $value }}
185
- LABELS = {{ $labels }}
186
- - alert: KubernetesHpaScaleMaximum
187
- expr: (kube_horizontalpodautoscaler_status_desired_replicas >= kube_horizontalpodautoscaler_spec_max_replicas) and (kube_horizontalpodautoscaler_spec_max_replicas > 1) and (kube_horizontalpodautoscaler_spec_min_replicas != kube_horizontalpodautoscaler_spec_max_replicas)
188
- for: 2m
189
- labels:
190
- severity: info
191
- annotations:
192
- summary: Kubernetes HPA scale maximum (instance {{ $labels.instance }})
193
- description: |-
194
- HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has hit maximum number of desired pods
195
- VALUE = {{ $value }}
196
- LABELS = {{ $labels }}
197
- - alert: KubernetesHpaUnderutilized
198
- expr: max(quantile_over_time(0.5, kube_horizontalpodautoscaler_status_desired_replicas[1d]) == kube_horizontalpodautoscaler_spec_min_replicas) by (horizontalpodautoscaler) > 3
199
- for: 0m
200
- labels:
201
- severity: info
202
- annotations:
203
- summary: Kubernetes HPA underutilized (instance {{ $labels.instance }})
204
- description: |-
205
- HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is constantly at minimum replicas for 50% of the time. Potential cost saving here.
206
- VALUE = {{ $value }}
207
- LABELS = {{ $labels }}
208
- - alert: KubernetesPodNotHealthy
209
- expr: sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"}) > 0
210
- for: 15m
211
- labels:
212
- severity: critical
213
- annotations:
214
- summary: Kubernetes Pod not healthy ({{ $labels.namespace }}/{{ $labels.pod }})
215
- description: |-
216
- Pod {{ $labels.namespace }}/{{ $labels.pod }} has been in a non-running state for longer than 15 minutes.
217
- VALUE = {{ $value }}
218
- LABELS = {{ $labels }}
219
- - alert: KubernetesPodCrashLooping
220
- expr: increase(kube_pod_container_status_restarts_total[1m]) > 3
221
- for: 2m
222
- labels:
223
- severity: warning
224
- annotations:
225
- summary: Kubernetes pod crash looping ({{ $labels.namespace }}/{{ $labels.pod }})
226
- description: |-
227
- Pod {{ $labels.namespace }}/{{ $labels.pod }} is crash looping
228
- VALUE = {{ $value }}
229
- LABELS = {{ $labels }}
230
- - alert: KubernetesReplicasetReplicasMismatch
231
- expr: kube_replicaset_spec_replicas != kube_replicaset_status_ready_replicas
232
- for: 10m
233
- labels:
234
- severity: warning
235
- annotations:
236
- summary: Kubernetes ReplicasSet mismatch ({{ $labels.namespace }}/{{ $labels.replicaset }})
237
- description: |-
238
- ReplicaSet {{ $labels.namespace }}/{{ $labels.replicaset }} replicas mismatch
239
- VALUE = {{ $value }}
240
- LABELS = {{ $labels }}
241
- - alert: KubernetesDeploymentReplicasMismatch
242
- expr: kube_deployment_spec_replicas != kube_deployment_status_replicas_available
243
- for: 10m
244
- labels:
245
- severity: warning
246
- annotations:
247
- summary: Kubernetes Deployment replicas mismatch ({{ $labels.namespace }}/{{ $labels.deployment }})
248
- description: |-
249
- Deployment {{ $labels.namespace }}/{{ $labels.deployment }} replicas mismatch
250
- VALUE = {{ $value }}
251
- LABELS = {{ $labels }}
252
- - alert: KubernetesStatefulsetReplicasMismatch
253
- expr: kube_statefulset_status_replicas_ready != kube_statefulset_status_replicas
254
- for: 10m
255
- labels:
256
- severity: warning
257
- annotations:
258
- summary: Kubernetes StatefulSet replicas mismatch (instance {{ $labels.instance }})
259
- description: |-
260
- StatefulSet does not match the expected number of replicas.
261
- VALUE = {{ $value }}
262
- LABELS = {{ $labels }}
263
- - alert: KubernetesDeploymentGenerationMismatch
264
- expr: kube_deployment_status_observed_generation != kube_deployment_metadata_generation
265
- for: 10m
266
- labels:
267
- severity: critical
268
- annotations:
269
- summary: Kubernetes Deployment generation mismatch ({{ $labels.namespace }}/{{ $labels.deployment }})
270
- description: |-
271
- Deployment {{ $labels.namespace }}/{{ $labels.deployment }} has failed but has not been rolled back.
272
- VALUE = {{ $value }}
273
- LABELS = {{ $labels }}
274
- - alert: KubernetesStatefulsetGenerationMismatch
275
- expr: kube_statefulset_status_observed_generation != kube_statefulset_metadata_generation
276
- for: 10m
277
- labels:
278
- severity: critical
279
- annotations:
280
- summary: Kubernetes StatefulSet generation mismatch ({{ $labels.namespace }}/{{ $labels.statefulset }})
281
- description: |-
282
- StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} has failed but has not been rolled back.
283
- VALUE = {{ $value }}
284
- LABELS = {{ $labels }}
285
- - alert: KubernetesStatefulsetUpdateNotRolledOut
286
- expr: max without (revision) (kube_statefulset_status_current_revision unless kube_statefulset_status_update_revision) * (kube_statefulset_replicas != kube_statefulset_status_replicas_updated)
287
- for: 10m
288
- labels:
289
- severity: warning
290
- annotations:
291
- summary: Kubernetes StatefulSet update not rolled out ({{ $labels.namespace }}/{{ $labels.statefulset }})
292
- description: |-
293
- StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} update has not been rolled out.
294
- VALUE = {{ $value }}
295
- LABELS = {{ $labels }}
296
- - alert: KubernetesDaemonsetRolloutStuck
297
- expr: kube_daemonset_status_number_ready / kube_daemonset_status_desired_number_scheduled * 100 < 100 or kube_daemonset_status_desired_number_scheduled - kube_daemonset_status_current_number_scheduled > 0
298
- for: 10m
299
- labels:
300
- severity: warning
301
- annotations:
302
- summary: Kubernetes DaemonSet rollout stuck ({{ $labels.namespace }}/{{ $labels.daemonset }})
303
- description: |-
304
- Some Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are not scheduled or not ready
305
- VALUE = {{ $value }}
306
- LABELS = {{ $labels }}
307
- - alert: KubernetesDaemonsetMisscheduled
308
- expr: kube_daemonset_status_number_misscheduled > 0
309
- for: 1m
310
- labels:
311
- severity: critical
312
- annotations:
313
- summary: Kubernetes DaemonSet misscheduled ({{ $labels.namespace }}/{{ $labels.daemonset }})
314
- description: |-
315
- Some Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are running where they are not supposed to run
316
- VALUE = {{ $value }}
317
- LABELS = {{ $labels }}
318
- - alert: KubernetesCronjobTooLong
319
- expr: time() - kube_cronjob_next_schedule_time > 3600
320
- for: 0m
321
- labels:
322
- severity: warning
323
- annotations:
324
- summary: Kubernetes CronJob too long ({{ $labels.namespace }}/{{ $labels.cronjob }})
325
- description: |-
326
- CronJob {{ $labels.namespace }}/{{ $labels.cronjob }} is taking more than 1h to complete.
327
- VALUE = {{ $value }}
328
- LABELS = {{ $labels }}
329
- - alert: KubernetesJobSlowCompletion
330
- expr: kube_job_spec_completions - kube_job_status_succeeded - kube_job_status_failed > 0
331
- for: 12h
332
- labels:
333
- severity: critical
334
- annotations:
335
- summary: Kubernetes job slow completion ({{ $labels.namespace }}/{{ $labels.job_name }})
336
- description: |-
337
- Kubernetes Job {{ $labels.namespace }}/{{ $labels.job_name }} did not complete in time.
338
- VALUE = {{ $value }}
339
- LABELS = {{ $labels }}
340
- - alert: KubernetesApiServerErrors
341
- expr: sum(rate(apiserver_request_total{job="apiserver",code=~"(?:5..)"}[1m])) by (instance, job) / sum(rate(apiserver_request_total{job="apiserver"}[1m])) by (instance, job) * 100 > 3
342
- for: 2m
343
- labels:
344
- severity: critical
345
- annotations:
346
- summary: Kubernetes API server errors (instance {{ $labels.instance }})
347
- description: |-
348
- Kubernetes API server is experiencing high error rate
349
- VALUE = {{ $value }}
350
- LABELS = {{ $labels }}
351
- - alert: KubernetesApiClientErrors
352
- expr: (sum(rate(rest_client_requests_total{code=~"(4|5).."}[1m])) by (instance, job) / sum(rate(rest_client_requests_total[1m])) by (instance, job)) * 100 > 1
353
- for: 2m
354
- labels:
355
- severity: critical
356
- annotations:
357
- summary: Kubernetes API client errors (instance {{ $labels.instance }})
358
- description: |-
359
- Kubernetes API client is experiencing high error rate
360
- VALUE = {{ $value }}
361
- LABELS = {{ $labels }}
362
- - alert: KubernetesClientCertificateExpiresNextWeek
363
- expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 7*24*60*60
364
- for: 0m
365
- labels:
366
- severity: warning
367
- annotations:
368
- summary: Kubernetes client certificate expires next week (instance {{ $labels.instance }})
369
- description: |-
370
- A client certificate used to authenticate to the apiserver is expiring next week.
371
- VALUE = {{ $value }}
372
- LABELS = {{ $labels }}
373
- - alert: KubernetesClientCertificateExpiresSoon
374
- expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 24*60*60
375
- for: 0m
376
- labels:
377
- severity: critical
378
- annotations:
379
- summary: Kubernetes client certificate expires soon (instance {{ $labels.instance }})
380
- description: |-
381
- A client certificate used to authenticate to the apiserver is expiring in less than 24.0 hours.
382
- VALUE = {{ $value }}
383
- LABELS = {{ $labels }}
384
- - alert: KubernetesApiServerLatency
385
- expr: histogram_quantile(0.99, sum(rate(apiserver_request_duration_seconds_bucket{verb!~"(?:CONNECT|WATCHLIST|WATCH|PROXY)"} [10m])) WITHOUT (subresource)) > 1
386
- for: 2m
387
- labels:
388
- severity: warning
389
- annotations:
390
- summary: Kubernetes API server latency (instance {{ $labels.instance }})
391
- description: |-
392
- Kubernetes API server has a 99th percentile latency of {{ $value }} seconds for {{ $labels.verb }} {{ $labels.resource }}.
393
- VALUE = {{ $value }}
394
- LABELS = {{ $labels }}