From f26acfb36ab9fab803dbc8d499bf4c8c1f9cea13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= <charles.edouard@nirmata.com> Date: Mon, 10 Jun 2024 17:57:29 +0200 Subject: [PATCH] chore: add chainsaw test for controllers leader election (#10416) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: add chainsaw test for reports controller leader election Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * other controllers Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> --------- Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> --- .github/workflows/conformance.yaml | 1 + .../admission-controller/chainsaw-test.yaml | 45 +++++++++++++++++++ .../background-controller/chainsaw-test.yaml | 45 +++++++++++++++++++ .../cleanup-controller/chainsaw-test.yaml | 45 +++++++++++++++++++ .../reports-controller/chainsaw-test.yaml | 45 +++++++++++++++++++ 5 files changed, 181 insertions(+) create mode 100755 test/conformance/chainsaw/lease/admission-controller/chainsaw-test.yaml create mode 100755 test/conformance/chainsaw/lease/background-controller/chainsaw-test.yaml create mode 100755 test/conformance/chainsaw/lease/cleanup-controller/chainsaw-test.yaml create mode 100755 test/conformance/chainsaw/lease/reports-controller/chainsaw-test.yaml diff --git a/.github/workflows/conformance.yaml b/.github/workflows/conformance.yaml index 289649b45c..37d2217255 100644 --- a/.github/workflows/conformance.yaml +++ b/.github/workflows/conformance.yaml @@ -105,6 +105,7 @@ jobs: - ^generate$/^policy$ - ^generate$/^validation$ - ^globalcontext$ + - ^lease$ - ^mutate$ - ^policy-validation$ - ^rangeoperators$ diff --git a/test/conformance/chainsaw/lease/admission-controller/chainsaw-test.yaml b/test/conformance/chainsaw/lease/admission-controller/chainsaw-test.yaml new file mode 100755 index 0000000000..c3a083f11c --- /dev/null +++ b/test/conformance/chainsaw/lease/admission-controller/chainsaw-test.yaml @@ -0,0 +1,45 @@ +apiVersion: chainsaw.kyverno.io/v1alpha1 +kind: Test +metadata: + name: admission-controller-lease +spec: + concurrent: false + steps: + - try: + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'kyverno']): + - ready: true + restartCount: 0 + - patch: + resource: + apiVersion: coordination.k8s.io/v1 + kind: Lease + metadata: + name: kyverno + namespace: kyverno + spec: + holderIdentity: foo + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'kyverno']): + - ready: true + restartCount: 1 diff --git a/test/conformance/chainsaw/lease/background-controller/chainsaw-test.yaml b/test/conformance/chainsaw/lease/background-controller/chainsaw-test.yaml new file mode 100755 index 0000000000..ab34eb7284 --- /dev/null +++ b/test/conformance/chainsaw/lease/background-controller/chainsaw-test.yaml @@ -0,0 +1,45 @@ +apiVersion: chainsaw.kyverno.io/v1alpha1 +kind: Test +metadata: + name: background-controller-lease +spec: + concurrent: false + steps: + - try: + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 0 + - patch: + resource: + apiVersion: coordination.k8s.io/v1 + kind: Lease + metadata: + name: kyverno-background-controller + namespace: kyverno + spec: + holderIdentity: foo + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 1 diff --git a/test/conformance/chainsaw/lease/cleanup-controller/chainsaw-test.yaml b/test/conformance/chainsaw/lease/cleanup-controller/chainsaw-test.yaml new file mode 100755 index 0000000000..08d23c9575 --- /dev/null +++ b/test/conformance/chainsaw/lease/cleanup-controller/chainsaw-test.yaml @@ -0,0 +1,45 @@ +apiVersion: chainsaw.kyverno.io/v1alpha1 +kind: Test +metadata: + name: cleanup-controller-lease +spec: + concurrent: false + steps: + - try: + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 0 + - patch: + resource: + apiVersion: coordination.k8s.io/v1 + kind: Lease + metadata: + name: kyverno-cleanup-controller + namespace: kyverno + spec: + holderIdentity: foo + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 1 diff --git a/test/conformance/chainsaw/lease/reports-controller/chainsaw-test.yaml b/test/conformance/chainsaw/lease/reports-controller/chainsaw-test.yaml new file mode 100755 index 0000000000..e8039a1987 --- /dev/null +++ b/test/conformance/chainsaw/lease/reports-controller/chainsaw-test.yaml @@ -0,0 +1,45 @@ +apiVersion: chainsaw.kyverno.io/v1alpha1 +kind: Test +metadata: + name: reports-controller-lease +spec: + concurrent: false + steps: + - try: + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 0 + - patch: + resource: + apiVersion: coordination.k8s.io/v1 + kind: Lease + metadata: + name: kyverno-reports-controller + namespace: kyverno + spec: + holderIdentity: foo + - assert: + resource: + apiVersion: v1 + kind: Pod + metadata: + namespace: kyverno + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + status: + (containerStatuses[?name == 'controller']): + - ready: true + restartCount: 1