This directory contains the Kuttl-based integration test suite for the STACKIT cert-manager webhook.
The E2E pipeline creates a local Kind cluster, installs cert-manager, deploys the webhook image built from source, and executes assertions against real Let's Encrypt Staging ACME challenges.
The test suite consists of the following sequential test scenarios:
record-lifecycle: Verifies the creation, propagation check, certificate issuance, and cleanup of a standard single domain certificate (e2e-cert.<ZONE_NAME>).wildcard-certificate: Verifies concurrent challenge handling for a wildcard certificate request covering both base and wildcard domains (*.e2e-wildcard.<ZONE_NAME>ande2e-wildcard.<ZONE_NAME>).
To run local E2E tests, ensure the following tools are installed:
- Docker
- Go
- Kind
- Kubectl
- Helm
- Kuttl (
kubectl-kuttl) - Dig (
dnsutilspackage)
- Prepare a STACKIT Service Account key JSON file with permissions to manage DNS records in your target test zone.
- Export required parameters and execute the Makefile target:
make test-e2e-local \
PROJECT_ID="<your-project-id>" \
ZONE_NAME="<your-test-zone>" \
AUTH_KEY_PATH="<path-to-sa-key.json>"When running tests locally on a corporate machine behind proxies or VPNs, cert-manager's propagation self-checks may timeout due to DNS interception or blocked outbound UDP port 53 traffic.
If you encounter dial tcp ...:53 i/o timeout errors during cert-manager propagation checks, run make test-e2e-local in an environment that is unaffected by these network interceptions.