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 in PATH
kubetest2-DEPLOYER
: manages the lifecycle of a Kubernetes clusterkubetest2-tester-TESTER
: tests a Kubernetes clusterThe intent behind this design is:
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 in kubernetes/cloud-provider-gcp
or kubernetes/kubernetes
kubetest2-gke
- use gcloud containers
kubetest2-kind
- use kind
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 from kubernetes/kubernetes
kubetest2-tester-node
- runs node e2e tests from kubernetes/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
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.