mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-18 02:48:40 +00:00
wip
Signed-off-by: Irbe Krumina <irbe@tailscale.com>
This commit is contained in:
parent
3f3edeec07
commit
3de468b372
9
scripts/kubetests/cleanup.sh
Executable file
9
scripts/kubetests/cleanup.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
helm uninstall operator --namespace tailscale
|
||||||
|
|
||||||
|
kubectl delete -f ./cmd/k8s-operator/deploy/crds
|
||||||
|
|
||||||
|
helm uninstall ingress
|
71
scripts/kubetests/setup.sh
Executable file
71
scripts/kubetests/setup.sh
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# This script builds the latest operator and proxy images and manifests and
|
||||||
|
# installs them as well as ingress-nginx chart to the current kube cluster. Run
|
||||||
|
# it with KIND=<cluster-name> to upload images to a kind cluster else you must
|
||||||
|
# pass REPO env var pointing at a public repository where the images will be
|
||||||
|
# pushed.
|
||||||
|
# This script is also run from ./scripts/kubetests/test_on_kind.sh
|
||||||
|
# Run it with:
|
||||||
|
# OAUTH_CLIENT_ID=<oauth client ID> \
|
||||||
|
# OAUTH_CLIENT_SECRET=<oauth-client-secret> \
|
||||||
|
# [REPO=<image registry>] \
|
||||||
|
# [KIND=<kind-cluster-name>] \
|
||||||
|
# ./scripts/kubetests/setup.sh
|
||||||
|
|
||||||
|
OAUTH_CLIENT_ID="$OAUTH_CLIENT_ID"
|
||||||
|
OAUTH_CLIENT_SECRET="$OAUTH_CLIENT_SECRET"
|
||||||
|
KIND=${KIND:-}
|
||||||
|
|
||||||
|
if [[ ! -z "$KIND" ]]; then
|
||||||
|
REPO="tailscale-for-kind"
|
||||||
|
fi
|
||||||
|
|
||||||
|
REPO="$REPO"
|
||||||
|
|
||||||
|
eval `./tool/go run ./cmd/mkversion`
|
||||||
|
|
||||||
|
args=(TAGS="${VERSION_SHORT}")
|
||||||
|
|
||||||
|
make kube-generate-all # ensure things are up to date
|
||||||
|
|
||||||
|
if [[ ! -z "$KIND" ]]; then
|
||||||
|
args+=" PLATFORM=local"
|
||||||
|
fi
|
||||||
|
|
||||||
|
make ${args[@]} REPO="${REPO}/proxy" publishdevimage
|
||||||
|
make ${args[@]} REPO="${REPO}/operator" publishdevoperator
|
||||||
|
|
||||||
|
if [[ ! -z "$KIND" ]]; then
|
||||||
|
kind load docker-image "${REPO}/operator:${VERSION_SHORT}" --name "${KIND}"
|
||||||
|
kind load docker-image "${REPO}/proxy:${VERSION_SHORT}" --name "${KIND}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
kubectl apply -f ./cmd/k8s-operator/deploy/crds/
|
||||||
|
|
||||||
|
helm upgrade \
|
||||||
|
--install \
|
||||||
|
operator ./cmd/k8s-operator/deploy/chart \
|
||||||
|
--namespace tailscale \
|
||||||
|
--create-namespace \
|
||||||
|
--set operator.image.repo="${REPO}/operator" \
|
||||||
|
--set operator.image.tag="${VERSION_SHORT} \
|
||||||
|
--set opertor.image.pullPolicy="IfNotPresent" \
|
||||||
|
--set proxy.image.repo="${REPO}/proxy \
|
||||||
|
--set proxy.image.tag="${VERSION_SHORT}" \
|
||||||
|
--set installCRDs=false \
|
||||||
|
--set-string apiServerProxyConfig.mode="true" \
|
||||||
|
--set oauth.clientId="${OAUTH_CLIENT_ID}" \
|
||||||
|
--set oauth.clientSecret="${OAUTH_CLIENT_SECRET}" \
|
||||||
|
--set operatorConfig.logging=debug \
|
||||||
|
--wait
|
||||||
|
|
||||||
|
# ingress-nginx is used in tests.
|
||||||
|
# Note that this command CANNOT be ran with --wait as the Service will never
|
||||||
|
# become ready (load balancer cannot be provisioned on kind).
|
||||||
|
helm upgrade --install ingress ingress-nginx/ingress-nginx
|
||||||
|
|
||||||
|
# TODO: either wait for the ingress-controller Pod to become ready or do
|
||||||
|
# something else to wait for the parts we care about to be ready.
|
39
scripts/kubetests/test_on_kind.sh
Executable file
39
scripts/kubetests/test_on_kind.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# Copyright (c) Tailscale Inc & AUTHORS
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# This script creates a kind cluster, sets up test dependencies and runs e2e
|
||||||
|
# tests. It builds the latest operator and proxy image as well as manifests from
|
||||||
|
# this repo. The operator and proxy images are uploaded to the local container
|
||||||
|
# registry (i.e docker) and the kind cluster.
|
||||||
|
#
|
||||||
|
# Run it with:
|
||||||
|
# OAUTH_CLIENT_ID=<oauth client ID> \
|
||||||
|
# OAUTH_CLIENT_SECRET=<oauth-client-secret> \
|
||||||
|
# [K8S_VERSION=<k8s version>] \
|
||||||
|
# [CLUSTER_NAME=<cluster_name] \
|
||||||
|
# ./scripts/kubetests/test_on_kind.sh
|
||||||
|
|
||||||
|
K8S_VERSION="${K8S_VERSION:=1.30}"
|
||||||
|
CLUSTER_NAME="${CLUSTER_NAME:=ts-e2e}"
|
||||||
|
|
||||||
|
# Kind recommends to use the exact image SHAs with a given kind build
|
||||||
|
case $K8S_VERSION in
|
||||||
|
1.30*) kind_image=kindest/node:v1.30.0@sha256:047357ac0cfea04663786a612ba1eaba9702bef25227a794b52890dd8bcd692e ;;
|
||||||
|
1.29*) kind_image=kindest/node:v1.29.4@sha256:3abb816a5b1061fb15c6e9e60856ec40d56b7b52bcea5f5f1350bc6e2320b6f8 ;;
|
||||||
|
1.28*) kind_image=kindest/node:v1.28.9@sha256:dca54bc6a6079dd34699d53d7d4ffa2e853e46a20cd12d619a09207e35300bd0 ;;
|
||||||
|
1.27*) kind_image=kindest/node:v1.27.13@sha256:17439fa5b32290e3ead39ead1250dca1d822d94a10d26f1981756cd51b24b9d8 ;;
|
||||||
|
1.26*) kind_image=kindest/node:v1.26.15@sha256:84333e26cae1d70361bb7339efb568df1871419f2019c80f9a12b7e2d485fe19 ;;
|
||||||
|
1.25*) kind_image=kindest/node:v1.25.16@sha256:5da57dfc290ac3599e775e63b8b6c49c0c85d3fec771cd7d55b45fae14b38d3b ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# TODO: check that the cluster does not already exist
|
||||||
|
kind create cluster --name "${CLUSTER_NAME}" --image "${kind_image}"
|
||||||
|
|
||||||
|
KIND="${CLUSTER_NAME}" OAUTH_CLIENT_ID="${OAUTH_CLIENT_ID}" OAUTH_CLIENT_SECRET="${OAUTH_CLIENT_SECRET}" ./scripts/kubetests/setup.sh
|
||||||
|
|
||||||
|
# TODO: now run the tests
|
||||||
|
# go test ./cmd/k8s-operator/e2e/...
|
Loading…
x
Reference in New Issue
Block a user