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 gatingcert-manager, Kargo

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

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