All Policies
Add Karpenter nodeSelector
Selecting the correct Node(s) provisioned by Karpenter is a way to specify the appropriate resource landing zone for a workload. This policy injects a nodeSelector map into the Pod based on the Namespace type where it is deployed.
Policy Definition
/karpenter/add-karpenter-nodeselector/add-karpenter-nodeselector.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: add-karpenter-nodeselector
5 annotations:
6 policies.kyverno.io/title: Add Karpenter nodeSelector
7 policies.kyverno.io/category: Karpenter, EKS Best Practices
8 policies.kyverno.io/severity: medium
9 policies.kyverno.io/subject: Pod
10 kyverno.io/kyverno-version: 1.7.1
11 policies.kyverno.io/minversion: 1.6.0
12 kyverno.io/kubernetes-version: "1.23"
13 policies.kyverno.io/description: >-
14 Selecting the correct Node(s) provisioned by Karpenter is a way to specify
15 the appropriate resource landing zone for a workload. This policy injects a
16 nodeSelector map into the Pod based on the Namespace type where it is deployed.
17spec:
18 rules:
19 - name: add-medium
20 match:
21 any:
22 - resources:
23 kinds:
24 - Pod
25 namespaceSelector:
26 matchLabels:
27 type: medium
28 mutate:
29 patchStrategicMerge:
30 spec:
31 nodeSelector:
32 kubernetes.io/arch: amd64
33 karpenter.sh/capacity-type: spot
34 - name: add-large
35 match:
36 any:
37 - resources:
38 kinds:
39 - Pod
40 namespaceSelector:
41 matchLabels:
42 type: large
43 mutate:
44 patchStrategicMerge:
45 spec:
46 nodeSelector:
47 kubernetes.io/arch: amd64
48 karpenter.sh/capacity-type: on-demand