Skip to content

Instantly share code, notes, and snippets.

@larkintuckerllc
Created September 14, 2025 20:21
Show Gist options
  • Save larkintuckerllc/5df57e602b81c8779fed64b893f933b0 to your computer and use it in GitHub Desktop.
Save larkintuckerllc/5df57e602b81c8779fed64b893f933b0 to your computer and use it in GitHub Desktop.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: nodepool-selector
annotations:
pod-policies.kyverno.io/autogen-controllers: none
spec:
rules:
- name: nodepool-selector
match:
any:
- resources:
annotations:
example.com/nodepool: "*"
kinds:
- Pod
namespaceSelector:
matchLabels:
example.com/match: "true"
exclude:
any:
- resources:
annotations:
example.com/nodepool-selector: "true"
preconditions:
any:
- key: example.com/nodepool
operator: AnyNotIn
value: "{{ request.object.spec.tolerations[].key || [] }}"
mutate:
patchesJson6902: |-
- op: add
path: "/metadata/annotations/example.com~1nodepool-selector"
value: "true"
- op: add
path: "/spec/tolerations/-"
value:
key: example.com/nodepool
operator: Equal
value: '{{ request.object.metadata.annotations."example.com/nodepool" }}'
effect: NoSchedule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment