Skip to content

Kubetest2 is the framework for launching and running end-to-end tests on Kubernetes.

License

Notifications You must be signed in to change notification settings

borg-land/kubetest2

 
 

Repository files navigation

kubetest2

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

Concepts

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 cluster
  • kubetest2-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

Installation

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.)

Usage

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\]'

Reference Implementations

See individual READMEs for more information

Deployers

Testers

External Implementations

Deployers

Testers

Support

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

Contact

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

About

Kubetest2 is the framework for launching and running end-to-end tests on Kubernetes.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 89.8%
  • Shell 6.5%
  • Python 2.3%
  • Makefile 1.4%