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 inPATH
kubetest2-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-gcp
orkubernetes/kubernetes
kubetest2-gke
- usegcloud containers
kubetest2-kind
- usekind
kubetest2-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/kubernetes
kubetest2-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:
kubetest2
and 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-exec
kubetest2-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.