Common Policy Settings: KCA practice questions
Policy settings are the fields under spec that change how a whole policy behaves, as distinct from what an individual rule checks. Several moved over time, so it helps to know both the current location and the deprecated one.
By Ibrahim Yesilay · Published · Updated
Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.
What Common Policy Settings covers in KCA
Policy settings are the fields under spec that change how a whole policy behaves, as distinct from what an individual rule checks. Several moved over time, so it helps to know both the current location and the deprecated one.
The webhook failure policy decides what the API server does when it cannot get an answer from Kyverno. In Kubernetes terms, Fail means an error calling the webhook rejects the request and Ignore means the request continues; Fail is the default. In a Kyverno policy this is now set as webhookConfiguration.failurePolicy, and the old spec.failurePolicy, which also defaulted to Fail, has been deprecated since 1.13. Fail is the safer setting for security rules, but it means an unavailable Kyverno can block changes, while Ignore keeps the cluster usable and lets requests pass unchecked. The timeout follows the same pattern: webhookConfiguration.timeoutSeconds replaces the deprecated webhookTimeoutSeconds, the default is 10 seconds, and values from 1 to 30 are allowed. When the timeout expires the failure policy applies.
applyRules takes One or All. All, the default, applies every matching rule; One stops after the first rule that matches. background, true by default, makes Kyverno also scan existing resources and produce report results for them. admission, also true by default, controls whether the rules run during admission at all. Some match criteria depend on admission data, so rules that match on roles, clusterRoles or subjects need background set to false, and variables such as serviceAccountName or request.roles are not available to background scans because existing resources carry no requester information.
Several settings were moved from spec to the rules they affect. validationFailureAction and validationFailureActionOverrides became failureAction and failureActionOverrides on the validate rule; the spec-level action defaulted to Audit. generateExisting moved under the generate rule; without it, installing a policy does not apply a generate rule to trigger resources that already exist. mutateExistingOnPolicyUpdate moved under the mutate rule and, together with mutate targets, mutates existing resources when the policy is created or updated. All of these spec-level forms are deprecated as of 1.13.
schemaValidation is deprecated since 1.11 and has no effect any more. useServerSideApply, false by default, makes generate rules use server-side apply so that other controllers can see which fields Kyverno owns. skipBackgroundRequests, true by default, skips admission requests that come from Kyverno's own background controller; it has to be false for generate and mutate-existing rules to act on those requests.
Settings outside the policy matter too. The Kyverno ConfigMap holds resourceFilters in the form [Kind,Namespace,Name], which skip some kinds such as Events and Nodes by default, excludeGroups, whose defaults include system:nodes, and a webhook namespaceSelector that excludes the kube-system and kyverno namespaces by default.
Key points
- The webhook failure policy defaults to Fail; Ignore lets requests through when Kyverno is unreachable.
- Webhook timeouts default to 10 seconds and must be between 1 and 30.
- applyRules: One stops at the first matching rule; All, the default, applies every match.
- schemaValidation is deprecated since 1.11 and has no effect.
Three sample questions
8 KCA questions on Common Policy Settings, 8 with explanations. How practice works
Question 1
ClusterPolicy sets failurePolicy: Fail (the default). Kyverno's admission controller becomes completely unreachable due to a bad rollout. What happens to a request that would have matched this policy's rules?- A.The API server retries indefinitely until Kyverno comes back.
- B.The request is queued and replayed once Kyverno's admission controller recovers.
- C.It is admitted anyway, since Kyverno can't be reached to say otherwise.
- D.It is denied —
Failmeans the API server closes the door when it can't get an answer from the webhook.
Correct answer: D
failurePolicy: Fail is "fail closed" — if the webhook is unreachable or times out, the API server denies the request rather than letting it through unchecked.Question 2
failurePolicy: Ignore for a particular policy instead of the default Fail?- A.
Ignorekeeps the cluster available during a Kyverno outage, accepting that enforcement for that policy silently stops during the outage, as a tradeoff for that availability. - B.
IgnoredisableswebhookTimeoutSeconds, so the setting no longer matters. - C.
Ignoremakes Kyverno evaluate rules faster thanFail. - D.
Ignoreis required for any policy using ageneraterule.
Correct answer: A
failurePolicy: Ignore ("fail open") trades away guaranteed enforcement during an outage in exchange for not blocking unrelated cluster activity if Kyverno itself becomes unreachable — a deliberate availability-over-strictness tradeoff for lower-stakes policies.Question 3
spec.webhookTimeoutSeconds actually control?- A.The TTL of a cached policy decision.
- B.How long the API server waits for Kyverno's admission response before treating the call as failed (and then applying
failurePolicy). - C.How long a
generaterule waits before creating its target resource. - D.How long Kyverno's background scan controller waits between re-scan cycles.
Correct answer: B
webhookTimeoutSeconds sets the window (default 10, max 30) the API server gives the webhook call to Kyverno before deciding it has failed, at which point failurePolicy takes over.Practice this topic
Focus mode keeps every question on Common Policy Settings until you leave it. 10 free guest answers, then a free account; no credit card.
Or open KCA practice across all topics.
Sources
The explanation above was checked against these official documents.
- Kyverno docs: Policy Settings (checked 2026-10-23)
- Kyverno docs: Configuring Kyverno (checked 2026-10-23)
- Kyverno docs: Match/Exclude (checked 2026-10-23)
- Kyverno docs: Variables (checked 2026-10-23)
- Kubernetes docs: Dynamic Admission Control (checked 2026-10-23)
Frequently asked questions
Where do failurePolicy and webhookTimeoutSeconds go in current Kyverno?
Under spec.webhookConfiguration, as failurePolicy and timeoutSeconds. The spec-level failurePolicy and webhookTimeoutSeconds fields are deprecated since Kyverno 1.13.