Use kyverno to add annotation to kube-vip pods

This commit is contained in:
2025-02-26 00:30:26 +01:00
parent b7bc05beb7
commit 4058ff5287
8 changed files with 89 additions and 97 deletions

View File

@@ -0,0 +1,37 @@
apiVersion: kyverno.io/v2beta1
kind: ClusterPolicy
metadata:
name: kube-vip-network-adapter
annotations:
pod-policies.kyverno.io/autogen-controllers: none
policies.kyverno.io/title: Kube VIP adapter label
policies.kyverno.io/category: Other
policies.kyverno.io/subject: Pod
kyverno.io/kyverno-version: 1.10.0
policies.kyverno.io/minversion: 1.10.0
kyverno.io/kubernetes-version: "1.26"
spec:
background: false
rules:
- name: add-network-adapter-annotation
match:
any:
- resources:
kinds:
- Pod/binding
names:
- kube-vip-*
context:
- name: node
variable:
jmesPath: request.object.target.name
default: ""
- name: adapter
apiCall:
urlPath: "/api/v1/nodes/{{node}}"
jmesPath: 'metadata.labels."feature.node.kubernetes.io/network-adapter" || "empty"'
mutate:
patchStrategicMerge:
metadata:
annotations:
feature.node.kubernetes.io/network-adapter: "{{ adapter }}"

View File

@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./kube-vip-network-adapter.yaml