mirror of
https://github.com/tailscale/tailscale.git
synced 2026-09-15 07:20:36 -04:00
Extend e2e test setup to work with a remote registry and real cluster. Previously only kind was supported. Detect cluster node architecture and build images only for the given architecture to reduce build time. Build for all platforms as the fallback option. This assumes only one node architecture per cluster, which is reasonable for our test cases. By default, --build loads the built images into a kind cluster. Use with --registry to instead specify and push to a remote registry. Fixes tailscale/corp#46577 Signed-off-by: Becky Pauley <becky@tailscale.com>
35 lines
1.7 KiB
Go
35 lines
1.7 KiB
Go
// Copyright (c) Tailscale Inc & contributors
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
// Package e2e runs end-to-end tests for the Tailscale Kubernetes operator.
|
|
//
|
|
// To run without arguments, it requires:
|
|
//
|
|
// * Kubernetes cluster with local kubeconfig for it (direct connection, no API server proxy)
|
|
// * Tailscale operator installed with --set apiServerProxyConfig.mode="true"
|
|
// * ACLs from acl.hujson
|
|
// * OAuth client secret in TS_API_CLIENT_SECRET env, with at least auth_keys write scope and tag:k8s tag
|
|
// * Default ProxyClass and operator env vars as appropriate to set the desired default proxy images.
|
|
//
|
|
// It also supports running against devcontrol, using the --devcontrol flag,
|
|
// which it expects to reach at http://localhost:31544. Use --cluster to create
|
|
// a dedicated kind cluster for the tests, and --build to build and test the
|
|
// operator and proxy images for the current checkout.
|
|
//
|
|
// When building with --build, --base-image overrides the base image that all
|
|
// the built images are layered on top of, e.g.
|
|
// --base-image=registry.access.redhat.com/ubi9/ubi-minimal:latest. Without it,
|
|
// the default base image in build_docker.sh is used. If using a real cluster
|
|
// with --build, --registry must also be set.
|
|
//
|
|
// To run with minimal dependencies, use:
|
|
//
|
|
// go test -count=1 -v ./cmd/k8s-operator/e2e/ --build --cluster --devcontrol --skip-cleanup
|
|
//
|
|
// Running like this, it requires:
|
|
//
|
|
// * go
|
|
// * container runtime with the docker daemon API available
|
|
// * devcontrol: ./tool/go run --tags=tailscale_saas ./cmd/devcontrol --generate-test-devices=k8s-operator-e2e --scenario-output-dir=/tmp/k8s-operator-e2e --test-dns=http://localhost:8055
|
|
package e2e
|