Myasnikov Daniil
0c17d1870c
feat(platform): add deletion-protection guardrail via ValidatingAdmissionPolicy
...
Block accidental DELETE on critical platform objects (tenant-root,
cozy-system, LinstorCluster, CRDs, ClusterIssuers, cozystack-version
ConfigMap, cozystack-packages OCIRepository, tenant-root HelmRelease)
via a label-scoped ValidatingAdmissionPolicy. No webhook DaemonSet,
Service, TLS, or image — the API server evaluates the CEL expression
in-process. Requires Kubernetes 1.30+.
Bypass for legitimate deletes is two steps:
kubectl label <kind> <name> platform.cozystack.io/no-delete-
kubectl delete <kind> <name>
CRDs installed dynamically by the operator get the label stamped in
internal/crdinstall/install.go before the apply call.
Release note:
Added deletion-protection guardrail (ValidatingAdmissionPolicy) blocking
DELETE on cozystack platform objects labeled platform.cozystack.io/no-delete=true.
Bypass by removing the label first.
Assisted-By: Claude <noreply@anthropic.com >
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com >
2026-05-26 14:18:22 +05:00
..
2026-01-15 22:35:56 +01:00
2026-05-21 15:23:18 +05:00
2026-05-25 22:16:57 +05:00
2026-01-19 13:59:29 +01:00
2026-03-25 15:57:25 +05:00
2026-05-26 10:29:30 +03:00
2026-03-03 19:32:32 +03:00
2026-01-15 16:06:56 +01:00
2026-05-21 12:57:02 +05:00
2026-05-21 12:57:02 +05:00
2026-05-21 12:57:02 +05:00
2026-05-21 12:57:02 +05:00
2026-05-03 20:49:47 +05:00
2026-05-03 20:49:47 +05:00
2026-05-26 14:18:22 +05:00
2026-05-26 10:29:30 +03:00
2026-01-15 16:06:56 +01:00
2026-01-15 16:06:56 +01:00
2026-05-11 21:08:41 +03:00
2026-02-14 11:42:52 +01:00
2026-02-10 22:47:20 +05:00
2026-05-07 16:45:36 +03:00
2026-04-28 11:14:27 +02:00
2026-05-26 10:29:30 +03:00
2026-05-26 14:18:22 +05:00
2026-05-26 10:29:30 +03:00
2026-04-13 17:15:09 +03:00
2026-05-26 10:29:30 +03:00
2026-05-22 14:35:08 +04:00
2026-05-22 14:35:08 +04:00
2026-03-10 12:48:01 +01:00
2026-05-25 19:11:52 +03:00
2026-01-15 16:06:56 +01:00
2026-05-25 17:45:44 +05:00
2026-01-15 16:06:56 +01:00
2026-01-15 16:06:56 +01:00
2026-01-15 16:06:56 +01:00
2026-05-13 09:49:19 +04:00
2026-05-25 17:07:02 +03:00
2026-01-15 16:06:56 +01:00
2026-04-30 14:52:56 +03:00
2026-05-21 15:23:18 +05:00
2026-04-29 11:14:41 +03:00
2026-04-30 16:40:26 +05:00
2026-05-11 21:08:41 +03:00
2026-04-23 16:57:23 +05:00
2026-05-11 21:08:41 +03:00
2026-01-19 13:59:29 +01:00
2026-03-02 12:35:14 +05:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-11 21:08:41 +03:00
2026-05-21 15:23:18 +05:00
2026-05-25 17:07:02 +03:00
2026-05-12 13:13:19 +05:00
2026-05-21 15:23:18 +05:00
2026-05-21 15:23:18 +05:00
2026-04-21 20:09:19 +02:00
2026-05-21 15:23:18 +05:00
2026-05-21 15:23:18 +05:00
2026-05-11 21:08:41 +03:00
2026-05-25 17:07:02 +03:00
2026-05-25 17:07:02 +03:00
2026-02-20 20:16:33 +01:00
2026-05-13 21:48:39 +00:00
2026-01-15 16:06:56 +01:00
2026-05-04 20:38:44 +02:00
2026-05-21 15:23:18 +05:00
2026-05-26 14:18:22 +05:00
2026-05-21 15:23:18 +05:00
2026-04-13 17:15:09 +03:00
2026-02-10 20:19:03 +01:00
2026-01-15 16:06:56 +01:00
2026-05-12 13:56:29 +04:00
2026-05-21 15:23:18 +05:00
2026-01-15 16:06:56 +01:00
2026-01-20 03:24:32 +01:00
2026-05-11 21:08:41 +03:00
2026-05-26 10:29:30 +03:00
2026-04-28 11:21:12 +03:00
2026-03-25 15:57:25 +05:00
2026-05-21 15:23:18 +05:00
2026-02-17 22:54:12 +01:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-21 15:23:18 +05:00
2026-02-17 20:03:01 +03:00
2026-05-11 21:08:41 +03:00
2026-01-20 03:24:32 +01:00
2026-05-20 15:45:08 +05:00
2026-05-11 21:08:41 +03:00
2026-05-11 02:20:34 +03:00
2026-03-25 16:11:14 +03:00
2026-02-11 22:54:56 +01:00
2026-04-24 13:33:07 +03:00
2026-05-21 16:04:07 +05:00
2026-01-15 16:06:56 +01:00
2026-02-06 13:30:58 +03:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-11 21:08:41 +03:00
2026-05-21 15:23:18 +05:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-13 21:48:39 +00:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-05-25 17:07:02 +03:00
2026-04-23 10:41:41 +05:00
2026-01-28 20:08:35 +03:00
2026-01-15 16:06:56 +01:00
2026-04-20 15:48:53 +03:00
2026-03-25 15:59:22 +05:00
2026-04-14 19:59:20 +05:00
2026-04-14 19:59:19 +05:00
2026-04-28 08:37:13 +02:00
2026-05-11 21:08:41 +03:00
2026-01-15 16:06:56 +01:00
2026-01-15 16:06:56 +01:00