Kubetest2 is a framework for deploying Kubernetes clusters and running end-to-end tests against them.
It is intended to be the next significant iteration of kubetest
kubetest2 is effectively split into three independent executables:
kubetest2: discovers and invokes deployers and testers inPATHkubetest2-DEPLOYER: manages the lifecycle of a Kubernetes clusterkubetest2-tester-TESTER: tests a Kubernetes cluster
The intent behind this design is:
- minimize coupling between deployers and testers
- encourage implementation of new deployers and testers out-of-tree
- keep dependencies / surface area of kubetest2 small
We provide reference implementations but all all new implementations should be external implementations
To install kubetest2 and all reference deployers and testers:
go install sigs.k8s.io/kubetest2/...@latest
To install a specific deployer:
go install sigs.k8s.io/kubetest2/kubetest2-DEPLOYER@latest (DEPLOYER can be gce, gke, etc.)
To install a sepcific tester:
go install sigs.k8s.io/kubetest2/kubetest2-tester-TESTER@latest (TESTER can be ginkgo, exec, etc.)
General usage is of the form:
kubetest2 <deployer> [Flags] [DeployerFlags] -- [TesterArgs]
Example: list all flags for the noop deployer and ginkgo tester
kubetest2 noop --test=ginkgo --help
Example: deploy a cluster using a local checkout of kubernetes/kubernetes, run Conformance tests
kubetest2 gce -v 2 \
--repo-root $KK_REPO_ROOT \
--gcp-project $YOUR_GCP_PROJECT \
--legacy-mode \
--build \
--up \
--down \
--test=ginkgo \
-- \
--focus-regex='\[Conformance\]'
See individual READMEs for more information
Deployers
kubetest2-gce- use scripts inkubernetes/cloud-provider-gcporkubernetes/kuberneteskubetest2-gke- usegcloud containerskubetest2-kind- usekindkubetest2-noop- do nothing (to use a pre-existing cluster)
Testers
kubetest2-tester-clusterloader2- use clusterloader2kubetest2-tester-exec- exec a given command with the given args / flagskubetest2-tester-ginkgo- runs e2e tests fromkubernetes/kuberneteskubetest2-tester-node- runs node e2e tests fromkubernetes/kubernetes
Deployers
Testers
This project is currently unversioned and unreleased. We make a best-effort attempt to enforce the following:
kubetest2and its reference implementations must work with the in-development version of kubernetes and all currently supported kubernetes releases- e.g. no generics until older supported kubernetes version supports generics
- e.g. ginkgo tester must work with both ginkgo v1 and ginkgo v2
- changes to the following testers must not break jobs in the kubernetes project
kubetest2-tester-execkubetest2-tester-ginkgo
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.