kubetest2

command module
v0.0.0-...-0d7ca9c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2024 License: Apache-2.0 Imports: 1 Imported by: 0

README

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
hack
deployer
Package deployer implements the kubetest2 GKE deployer
Package deployer implements the kubetest2 GKE deployer
deployer
Package deployer implements the kubetest2 GKE deployer
Package deployer implements the kubetest2 GKE deployer
deployer
Package deployer implements the kubetest2 kind deployer
Package deployer implements the kubetest2 kind deployer
deployer
Package deployer implements the kubetest2 kind deployer
Package deployer implements the kubetest2 kind deployer
Package exec implements a kubetest2 tester that simply executes the arguments as a subprocess
Package exec implements a kubetest2 tester that simply executes the arguments as a subprocess
pkg
app
Package app implements the kubetest2 high level application logic
Package app implements the kubetest2 high level application logic
app/shim
Package shim implements the kubetest2 root command logic, "shimming" to deployer specific binaries
Package shim implements the kubetest2 root command logic, "shimming" to deployer specific binaries
build
Package build implements a common system for building kubernetes for deployers to use.
Package build implements a common system for building kubernetes for deployers to use.
exec
Package exec contains an interface for executing commands, along with helpers TODO(bentheelder): add standardized timeout functionality & a default timeout so that commands cannot hang indefinitely (!)
Package exec contains an interface for executing commands, along with helpers TODO(bentheelder): add standardized timeout functionality & a default timeout so that commands cannot hang indefinitely (!)
fs
process
Package process contains helpers for executing processes in ways that behave similarly to syscall.Exec, but using child processes instead
Package process contains helpers for executing processes in ways that behave similarly to syscall.Exec, but using child processes instead
testers/node
Package node implements a node tester that implements e2e node testing following https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md#delete-instance-after-tests-run https://github.com/kubernetes/kubernetes/blob/96be00df69390ed41b8ec22facc43bcbb9c88aae/build/root/Makefile#L206-L271 currently only support REMOTE=true
Package node implements a node tester that implements e2e node testing following https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md#delete-instance-after-tests-run https://github.com/kubernetes/kubernetes/blob/96be00df69390ed41b8ec22facc43bcbb9c88aae/build/root/Makefile#L206-L271 currently only support REMOTE=true
types
Package types defines the common types / interfaces for kubetest2 deployer and tester implementations
Package types defines the common types / interfaces for kubetest2 deployer and tester implementations

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL