mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-31 03:45:17 +00:00
test: pod restart on configmap/secret update (#7306)
* test: pod restart on secret update Signed-off-by: Alok N <alokme123@gmail.com> * fix: requested changes Signed-off-by: Alok N <alokme123@gmail.com> * fix: debug remove, secret Signed-off-by: Alok N <alokme123@gmail.com> --------- Signed-off-by: Alok N <alokme123@gmail.com>
This commit is contained in:
parent
f74eac4e52
commit
ad1c2d6bca
13 changed files with 174 additions and 0 deletions
|
@ -0,0 +1,5 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
apply:
|
||||||
|
- manifests.yaml
|
||||||
|
- cluster-role.yaml
|
|
@ -0,0 +1,6 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
apply:
|
||||||
|
- policy.yaml
|
||||||
|
assert:
|
||||||
|
- policy-ready.yaml
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
commands:
|
||||||
|
- script: "kubectl get po -n kube-state-metrics | awk 'NR==2{print $1}' > pod-name.txt"
|
|
@ -0,0 +1,7 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: kube-state-metrics-crds
|
||||||
|
namespace: kube-state-metrics
|
||||||
|
data:
|
||||||
|
foo: bm90LWJhcg==
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
commands:
|
||||||
|
- command: sleep 5
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
commands:
|
||||||
|
- script: "if [ \"$(kubectl get pods -n kyverno | sort --key 5 --numeric | awk 'NR==2{print $1}')\" != \"$(cat pod-name.txt)\" ];then exit;else (exit 1);fi"
|
|
@ -0,0 +1,11 @@
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This test checks if a restart is triggered on a generated secret update
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
Pod restarted after the generated secret is updated
|
||||||
|
|
||||||
|
## Reference Issue(s)
|
||||||
|
|
||||||
|
https://github.com/kyverno/kyverno/issues/6605
|
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: kyverno:background-controller:additional
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: background-controller
|
||||||
|
app.kubernetes.io/instance: kyverno
|
||||||
|
app.kubernetes.io/part-of: kyverno
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
verbs:
|
||||||
|
- update
|
|
@ -0,0 +1,37 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: kube-state-metrics
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: kube-state-metrics-source-cm
|
||||||
|
namespace: kube-state-metrics
|
||||||
|
labels:
|
||||||
|
kubestatemetrics.platform.example: source
|
||||||
|
data:
|
||||||
|
allowed: '"true"'
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
namespace: kube-state-metrics
|
||||||
|
name: kube-state-metrics
|
||||||
|
labels:
|
||||||
|
app: busybox
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: busybox
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: busybox
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: busybox
|
||||||
|
image: busybox:1.35
|
||||||
|
command:
|
||||||
|
- sleep
|
||||||
|
- "36000"
|
|
@ -0,0 +1,9 @@
|
||||||
|
apiVersion: kyverno.io/v1
|
||||||
|
kind: ClusterPolicy
|
||||||
|
metadata:
|
||||||
|
name: generate-cm-for-kube-state-metrics-crds
|
||||||
|
status:
|
||||||
|
conditions:
|
||||||
|
- reason: Succeeded
|
||||||
|
status: "True"
|
||||||
|
type: Ready
|
|
@ -0,0 +1,68 @@
|
||||||
|
apiVersion: kyverno.io/v1
|
||||||
|
kind: ClusterPolicy
|
||||||
|
metadata:
|
||||||
|
name: generate-cm-for-kube-state-metrics-crds
|
||||||
|
annotations:
|
||||||
|
policies.kyverno.io/description: >-
|
||||||
|
This policy generates and synchronizes a configmap for custom resource kube-state-metrics.
|
||||||
|
spec:
|
||||||
|
generateExisting: true
|
||||||
|
mutateExistingOnPolicyUpdate: false
|
||||||
|
schemaValidation: false
|
||||||
|
rules:
|
||||||
|
- name: generate-cm-for-kube-state-metrics-crds
|
||||||
|
match:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
names:
|
||||||
|
- "*"
|
||||||
|
kinds:
|
||||||
|
- ConfigMap
|
||||||
|
namespaces:
|
||||||
|
- "kube-state-metrics"
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
kubestatemetrics.platform.example: source
|
||||||
|
generate:
|
||||||
|
synchronize: true
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
name: kube-state-metrics-crds
|
||||||
|
namespace: kube-state-metrics
|
||||||
|
data:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
generatedBy: kyverno
|
||||||
|
kubestatemetrics.platform.example: generated
|
||||||
|
data:
|
||||||
|
foo: YmFy
|
||||||
|
- name: restart-kube-state-metrics-on-sc-change
|
||||||
|
match:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
kinds:
|
||||||
|
- Secret
|
||||||
|
names:
|
||||||
|
- "kube-state-metrics-crds"
|
||||||
|
namespaces:
|
||||||
|
- "kube-state-metrics"
|
||||||
|
preconditions:
|
||||||
|
all:
|
||||||
|
- key: "{{ request.object.metadata.labels.\"kubestatemetrics.platform.example\" || '' }}"
|
||||||
|
operator: NotEquals
|
||||||
|
value: source
|
||||||
|
- key: "{{request.operation || 'BACKGROUND'}}"
|
||||||
|
operator: Equals
|
||||||
|
value: UPDATE
|
||||||
|
mutate:
|
||||||
|
targets:
|
||||||
|
- apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
name: kube-state-metrics
|
||||||
|
namespace: kube-state-metrics
|
||||||
|
patchStrategicMerge:
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
platform.cloud.allianz/triggerrestart: "{{request.object.metadata.resourceVersion}}"
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
commands:
|
||||||
|
- command: sleep 5
|
Loading…
Add table
Reference in a new issue