Skip to content
End-to-end tests

End-to-end tests

KICK’s end-to-end tests run Chainsaw scenarios against a kind cluster. Every scenario directory under test/e2e/scenarios maps to one stable scenario ID and carries a trace.yaml linking it to the features it proves.

Suites

TargetCoversInstalls
make test-e2e-corerestart, policy and observation behaviourKICK
make test-e2e-argocdArgo CD ownership, sync windows and sync stateGitea, Argo CD
make test-e2e-recoverycrash and restart recoveryKICK
make test-e2e-rolloutsArgo Rollouts restartsArgo Rollouts
make test-e2e-csiSecrets Store CSI rotationCSI driver and provider
make test-e2e-kargoKargo promotion and verification gatingcert-manager, Kargo, Argo Rollouts

Each target installs its own prerequisites and then redeploys the manager from the config/e2e overlay. The manager probes the optional integration CRDs once at startup, so it is always restarted after a CRD is installed — otherwise the integration would stay silently inactive.

Working on a single scenario

make e2e-rollouts-setup            # prerequisites for the suite
make test-e2e-scenario E2E=060     # one scenario, integration timeout budget
make test-e2e-render               # render every scenario without a cluster

Scenario timings

Set E2E_REPORT_DIR to write a JUnit report per suite and render the slowest scenarios as a table:

make test-e2e-core E2E_REPORT_DIR=dist/e2e-reports
make e2e-timing-summary E2E_REPORT_DIR=dist/e2e-reports

CI runs the suites in parallel and publishes that table in each job summary, see Continuous integration.

GitOps fixtures

Scenarios that need a real GitOps source push manifests into the in-cluster Gitea, one repository per scenario, so parallel scenarios never share state:

test/e2e/setup/gitea/seed.sh        e2e-037 manifests ./manifests
test/e2e/setup/gitea/commit-file.sh e2e-037 manifests/app.yaml ./updated/app.yaml

Argo CD sync windows also block Argo CD’s own sync, so a scenario that closes a window must deliver the dependency change directly instead of through git.

Last updated on