You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* If the cluster has multiple webhooks configured (possibly from independent applications deployed on
1268
+
the cluster), they can form a cycle. Webhook A must be called to process startup of webhook B's
1269
+
pods and vice versa. If both webhook A and webhook B ever become unavailable at the same time (for
1270
+
example, due to a cluster-wide outage or a node failure where both pods run on the same node)
1271
+
deadlock occurs because neither webhook pod can be recreated without the other already running.
1272
+
1273
+
One way to prevent this is to exclude webhook A's pods from being acted on be webhook B. This
1274
+
allows webhook A's pods to start, which in turn allows webhook B's pods to start. If you had a
1275
+
third webhook, webhook C, you'd need to exclude both webhook A and webhook B's pods from
1276
+
webhook C. This ensures that webhook A can _always_ start, which then allows webhook B's pods
1277
+
to start, which in turn allows webhook C's pods to start.
1278
+
1279
+
If you want to ensure protection that avoids these risks, [ValidatingAdmissionPolicies](/docs/reference/access-authn-authz/validating-admission-policy/)
1280
+
can
1281
+
provide many protection capabilities without introducing dependency cycles.
1282
+
1283
+
* Admission webhooks can intercept resources used by critical cluster add-ons, such as CoreDNS,
1284
+
network plugins, or storage plugins. These add-ons may be required to schedule or successfully run the
1285
+
pods for a particular admission webhook on the cluster. This can cause a deadlock if both the
1286
+
webhook and critical add-on is unavailable at the same time.
1287
+
1288
+
You may wish to exclude cluster infrastructure namespaces from webhooks, or make sure that
1289
+
the webhook does not depend on the particular add-on that it acts on. For exmaple, running
1290
+
a webhook as a host-networked pod ensures that it does not depend on a networking plugin.
1291
+
1292
+
If you want to ensure protection for a core add-on / or its namespace,
0 commit comments