As a QE engineer, I want the CI to run the e2e tests against RCs and GAs.
As a QE engineer, I want to add tests to the e2e testsuite with no impact to the development cycle.
As a Kubewarden maintainer, I want to run e2e tests locally against any combination Kubewarden components (helm charts, deps, container images, policies) while developing new features.
As a Kubewarden maintainer I want to run the e2e tests on helm-charts PRs for the code under test in those PRs. This may include select PRs on other repos (e.g: bumping version for release on kwctl, policy-server, controller, which helps for patch releases).
As a Kubewarden consumer, I want to run smoke e2e tests that ship with GA releases to verify Kubewarden installations.
E2E testsuite
Must run locally, and on GitHub Actions.
Must be cluster-provider agnostic (Minikube, Fleet, EKS..)
Must have a separate phase were all the components of the system under test are gathered prior to testing (helm charts tgz or folders, container image versions, policy versions). This allows to easily bump, swap any of those components prior to start testing.
Testsuite run must be able to cancel, restart each testcase for iterative development.
Testcases must be separated between destructive and non-destructive. If needed tests will instantiate their own policy-server and policies that only target specific test namespaces. They can do this programatically by creating a ns on each run.
Non-destructive testcases must be able to run in any order. If a testcase fails, the suite should cleanup and proceed with the next.
Testcases must be able to run in any order.
Testcases should be stackable if possible: values.yaml configuration for the testcase must be minimal, and it should be possible to merge values.yaml files from several testcases to deploy and test a specific configuration (e.g: opentelemetry + audit scanner, or opentelemetry + airgap).
Cover at least the following testcases:
non-destructive:
smoke tests: policy pending to active, policy rejection and logging on monitor, monitor to protect, etc. Shipped as part of the Helm chart for Kubewarden consumers.
User stories
As a QE engineer, I want the CI to run the e2e tests against RCs and GAs. As a QE engineer, I want to add tests to the e2e testsuite with no impact to the development cycle. As a Kubewarden maintainer, I want to run e2e tests locally against any combination Kubewarden components (helm charts, deps, container images, policies) while developing new features. As a Kubewarden maintainer I want to run the e2e tests on helm-charts PRs for the code under test in those PRs. This may include select PRs on other repos (e.g: bumping version for release on kwctl, policy-server, controller, which helps for patch releases). As a Kubewarden consumer, I want to run smoke e2e tests that ship with GA releases to verify Kubewarden installations.
E2E testsuite
Acceptance criteria
See https://github.com/kubewarden/kubewarden-end-to-end-tests/issues/22 for possible useful projects.