From 0627098d3afe0fc5a71c00bc2689418246c2e5ec Mon Sep 17 00:00:00 2001 From: simontesar Date: Thu, 1 Oct 2026 12:40:36 +0300 Subject: [PATCH 1/5] fix: increase deletion timeouts --- tests/06-biossettings-noreboot/chainsaw-test.yaml | 2 ++ tests/07-biossettings-reboot/chainsaw-test.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/06-biossettings-noreboot/chainsaw-test.yaml b/tests/06-biossettings-noreboot/chainsaw-test.yaml index 95a57a2..280c8b5 100644 --- a/tests/06-biossettings-noreboot/chainsaw-test.yaml +++ b/tests/06-biossettings-noreboot/chainsaw-test.yaml @@ -54,6 +54,7 @@ spec: status: state: Applied - delete: + timeout: 2m file: biossettings-baseline.yaml - name: apply-biossettings try: @@ -98,4 +99,5 @@ spec: status: state: Applied - delete: + timeout: 2m file: biossettings-baseline.yaml diff --git a/tests/07-biossettings-reboot/chainsaw-test.yaml b/tests/07-biossettings-reboot/chainsaw-test.yaml index a4d7db2..ce45be6 100644 --- a/tests/07-biossettings-reboot/chainsaw-test.yaml +++ b/tests/07-biossettings-reboot/chainsaw-test.yaml @@ -55,6 +55,7 @@ spec: status: state: Applied - delete: + timeout: 2m file: biossettings-baseline.yaml - assert: timeout: 15m @@ -111,6 +112,7 @@ spec: status: state: Applied - delete: + timeout: 2m file: biossettings-baseline.yaml - assert: timeout: 15m From 1b5b9c8627692c67017c3c35229e0b0222ccde1e Mon Sep 17 00:00:00 2001 From: simontesar Date: Thu, 1 Oct 2026 12:45:58 +0300 Subject: [PATCH 2/5] fix: set default timeout to 30m, decrease timeout for some deletions --- Makefile | 4 ++-- tests/07-biossettings-reboot/chainsaw-test.yaml | 1 + tests/08-bmcsettings/chainsaw-test.yaml | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6dac2ce..9118f59 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CHAINSAW ?= chainsaw TEST_DIR := tests VALUES ?= -ASSERT_TIMEOUT ?= 15m +ASSERT_TIMEOUT ?= 30m CHAINSAW_EXTRA_FLAGS ?= CHAINSAW_RUN = $(CHAINSAW) test --values $(VALUES) --parallel 1 --assert-timeout $(ASSERT_TIMEOUT) $(CHAINSAW_EXTRA_FLAGS) @@ -25,7 +25,7 @@ help: ## Show available targets @echo "" @echo " tests:" @echo " * values via VALUES (required; e.g. VALUES=../metal-lab/values-containerlab-node1.yaml)" - @echo " * assert timeout via ASSERT_TIMEOUT (default 15m; e.g. ASSERT_TIMEOUT=5m)" + @echo " * assert timeout via ASSERT_TIMEOUT (default 30m; e.g. ASSERT_TIMEOUT=5m)" @echo " * extra chainsaw flags via CHAINSAW_EXTRA_FLAGS (e.g. CHAINSAW_EXTRA_FLAGS=\"--skip-delete -v\")" @echo "" @echo " test (run every test)" diff --git a/tests/07-biossettings-reboot/chainsaw-test.yaml b/tests/07-biossettings-reboot/chainsaw-test.yaml index ce45be6..af310aa 100644 --- a/tests/07-biossettings-reboot/chainsaw-test.yaml +++ b/tests/07-biossettings-reboot/chainsaw-test.yaml @@ -100,6 +100,7 @@ spec: - name: restore-baseline try: - delete: + timeout: 2m file: biossettings-reboot.yaml - apply: file: biossettings-baseline.yaml diff --git a/tests/08-bmcsettings/chainsaw-test.yaml b/tests/08-bmcsettings/chainsaw-test.yaml index c79ffbf..cafbd29 100644 --- a/tests/08-bmcsettings/chainsaw-test.yaml +++ b/tests/08-bmcsettings/chainsaw-test.yaml @@ -46,7 +46,6 @@ spec: - name: assert-bmcsettings-applied try: - assert: - timeout: 30m resource: apiVersion: baseboard.metal.ironcore.dev/v1alpha1 kind: BMCSettings From ae0bb14dea95f2505ab718bc0f4cd09ef36c0419 Mon Sep 17 00:00:00 2001 From: simontesar Date: Thu, 1 Oct 2026 12:53:53 +0300 Subject: [PATCH 3/5] feat: 04: assert previousResetTime --- tests/04-bmc-reset/chainsaw-test.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/04-bmc-reset/chainsaw-test.yaml b/tests/04-bmc-reset/chainsaw-test.yaml index 6a55d32..31feaef 100644 --- a/tests/04-bmc-reset/chainsaw-test.yaml +++ b/tests/04-bmc-reset/chainsaw-test.yaml @@ -1,5 +1,4 @@ # 04 — BMC reset -# - Should be extended to asser status.lastResetTime once testing agains physical servers apiVersion: chainsaw.kyverno.io/v1alpha1 kind: Test metadata: @@ -32,6 +31,9 @@ spec: status: state: Enabled - name: graceful-restart-bmc + bindings: + - name: previousResetTime + value: (x_k8s_get($client, 'metal.ironcore.dev/v1alpha1', 'BMC', '', join('-', ['compatibility', $namespace])).status.lastResetTime) try: - patch: resource: @@ -41,8 +43,6 @@ spec: name: (join('-', ['compatibility', $namespace])) annotations: metal.ironcore.dev/operation: graceful-restart-bmc - - name: assert-bmc-reset-complete - try: - assert: resource: apiVersion: metal.ironcore.dev/v1alpha1 @@ -52,4 +52,4 @@ spec: (annotations."metal.ironcore.dev/operation" || 'absent'): 'absent' status: state: Enabled - (lastResetTime != null): true + (lastResetTime != $previousResetTime): true From 5b668256d3e67f0361641d0b255a63e1330faa0b Mon Sep 17 00:00:00 2001 From: simontesar Date: Thu, 1 Oct 2026 12:54:39 +0300 Subject: [PATCH 4/5] fix: 08: ensure baseline before changing value --- tests/08-bmcsettings/chainsaw-test.yaml | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/08-bmcsettings/chainsaw-test.yaml b/tests/08-bmcsettings/chainsaw-test.yaml index cafbd29..2a5bdee 100644 --- a/tests/08-bmcsettings/chainsaw-test.yaml +++ b/tests/08-bmcsettings/chainsaw-test.yaml @@ -39,6 +39,23 @@ spec: name: (join('-', ['compatibility', $namespace, 'system-0'])) status: state: Available +# Ensure that there is a baseline value set so that a run after an earlier +# successful run does not result in a no-op. + - name: prepare-baseline + try: + - apply: + file: bmcsettings-baseline.yaml + - assert: + resource: + apiVersion: baseboard.metal.ironcore.dev/v1alpha1 + kind: BMCSettings + metadata: + name: (join('-', ['compatibility', $namespace, 'bmc-baseline'])) + status: + state: Applied + - delete: + timeout: 2m + file: bmcsettings-baseline.yaml - name: apply-bmcsettings try: - apply: @@ -65,3 +82,21 @@ spec: (annotations."metal.ironcore.dev/operation" == null): true status: state: Available + - name: restore-baseline + try: + - delete: + timeout: 2m + file: bmcsettings.yaml + - apply: + file: bmcsettings-baseline.yaml + - assert: + resource: + apiVersion: baseboard.metal.ironcore.dev/v1alpha1 + kind: BMCSettings + metadata: + name: (join('-', ['compatibility', $namespace, 'bmc-baseline'])) + status: + state: Applied + - delete: + timeout: 2m + file: bmcsettings-baseline.yaml From c998c9cbef39da06727251c10e5fe1916ee87de8 Mon Sep 17 00:00:00 2001 From: simontesar Date: Thu, 1 Oct 2026 13:10:45 +0300 Subject: [PATCH 5/5] fix: 08: add missing baseline file --- tests/08-bmcsettings/bmcsettings-baseline.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/08-bmcsettings/bmcsettings-baseline.yaml diff --git a/tests/08-bmcsettings/bmcsettings-baseline.yaml b/tests/08-bmcsettings/bmcsettings-baseline.yaml new file mode 100644 index 0000000..22bcdd8 --- /dev/null +++ b/tests/08-bmcsettings/bmcsettings-baseline.yaml @@ -0,0 +1,13 @@ +apiVersion: baseboard.metal.ironcore.dev/v1alpha1 +kind: BMCSettings +metadata: + name: (join('-', ['compatibility', $namespace, 'bmc-baseline'])) +spec: + bmcRef: + name: (join('-', ['compatibility', $namespace])) + version: ($values.firmwareVersion) + serverMaintenancePolicy: Enforced + settingsFlow: + - name: bmc-setting + priority: 1 + settings: (from_items([[($values."08-bmcsettings".key), ($values."08-bmcsettings".baselineValue)]]))