Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)"
Expand Down
8 changes: 4 additions & 4 deletions tests/04-bmc-reset/chainsaw-test.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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
Expand All @@ -52,4 +52,4 @@ spec:
(annotations."metal.ironcore.dev/operation" || 'absent'): 'absent'
status:
state: Enabled
(lastResetTime != null): true
(lastResetTime != $previousResetTime): true
2 changes: 2 additions & 0 deletions tests/06-biossettings-noreboot/chainsaw-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ spec:
status:
state: Applied
- delete:
timeout: 2m
file: biossettings-baseline.yaml
- name: apply-biossettings
try:
Expand Down Expand Up @@ -98,4 +99,5 @@ spec:
status:
state: Applied
- delete:
timeout: 2m
file: biossettings-baseline.yaml
3 changes: 3 additions & 0 deletions tests/07-biossettings-reboot/chainsaw-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ spec:
status:
state: Applied
- delete:
timeout: 2m
file: biossettings-baseline.yaml
- assert:
timeout: 15m
Expand Down Expand Up @@ -99,6 +100,7 @@ spec:
- name: restore-baseline
try:
- delete:
timeout: 2m
file: biossettings-reboot.yaml
- apply:
file: biossettings-baseline.yaml
Expand All @@ -111,6 +113,7 @@ spec:
status:
state: Applied
- delete:
timeout: 2m
file: biossettings-baseline.yaml
- assert:
timeout: 15m
Expand Down
13 changes: 13 additions & 0 deletions tests/08-bmcsettings/bmcsettings-baseline.yaml
Original file line number Diff line number Diff line change
@@ -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)]]))
36 changes: 35 additions & 1 deletion tests/08-bmcsettings/chainsaw-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,30 @@ 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:
file: bmcsettings.yaml
- name: assert-bmcsettings-applied
try:
- assert:
timeout: 30m
resource:
apiVersion: baseboard.metal.ironcore.dev/v1alpha1
kind: BMCSettings
Expand All @@ -66,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
Loading