mirror of https://github.com/kubernetes/kops.git
				
				
				
			Create simple test that runs with boskos
A simple e2e test for running with boskos on AWS.
This commit is contained in:
		
							parent
							
								
									c3f28b25d2
								
							
						
					
					
						commit
						ea4fb3e06a
					
				|  | @ -0,0 +1 @@ | ||||||
|  | A simple test running with boskos. | ||||||
|  | @ -0,0 +1,121 @@ | ||||||
|  | #!/usr/bin/env bash | ||||||
|  | 
 | ||||||
|  | # Copyright 2023 The Kubernetes Authors. | ||||||
|  | # | ||||||
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | # you may not use this file except in compliance with the License. | ||||||
|  | # You may obtain a copy of the License at | ||||||
|  | # | ||||||
|  | #     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | # | ||||||
|  | # Unless required by applicable law or agreed to in writing, software | ||||||
|  | # distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | # See the License for the specific language governing permissions and | ||||||
|  | # limitations under the License. | ||||||
|  | 
 | ||||||
|  | set -e | ||||||
|  | set -x | ||||||
|  | 
 | ||||||
|  | REPO_ROOT=$(git rev-parse --show-toplevel) | ||||||
|  | cd "${REPO_ROOT}" | ||||||
|  | cd .. | ||||||
|  | WORKSPACE=$(pwd) | ||||||
|  | cd "${WORKSPACE}/kops" | ||||||
|  | 
 | ||||||
|  | # Create bindir | ||||||
|  | BINDIR="${WORKSPACE}/bin" | ||||||
|  | export PATH="${BINDIR}:${PATH}" | ||||||
|  | mkdir -p "${BINDIR}" | ||||||
|  | 
 | ||||||
|  | # Build kubetest-2 kOps support | ||||||
|  | pushd "${WORKSPACE}/kops" | ||||||
|  | GOBIN=${BINDIR} make test-e2e-install | ||||||
|  | popd | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Setup our cleanup function; as we allocate resources we set a variable to indicate they should be cleaned up | ||||||
|  | function cleanup { | ||||||
|  |   # shellcheck disable=SC2153 | ||||||
|  |   if [[ "${DELETE_CLUSTER:-}" == "true" ]]; then | ||||||
|  |       kubetest2 kops "${KUBETEST2_ARGS[@]}" --down || echo "kubetest2 down failed" | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | trap cleanup EXIT | ||||||
|  | 
 | ||||||
|  | # Default cluster name | ||||||
|  | SCRIPT_NAME=$(basename "$(dirname "$0")") | ||||||
|  | if [[ -z "${CLUSTER_NAME:-}" ]]; then | ||||||
|  |   CLUSTER_NAME="${SCRIPT_NAME}.k8s.local" | ||||||
|  | fi | ||||||
|  | echo "CLUSTER_NAME=${CLUSTER_NAME}" | ||||||
|  | 
 | ||||||
|  | if [[ -z "${K8S_VERSION:-}" ]]; then | ||||||
|  |   K8S_VERSION="$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Download latest prebuilt kOps | ||||||
|  | if [[ -z "${KOPS_BASE_URL:-}" ]]; then | ||||||
|  |   KOPS_BASE_URL="$(curl -s https://storage.googleapis.com/kops-ci/bin/latest-ci-updown-green.txt)" | ||||||
|  | fi | ||||||
|  | export KOPS_BASE_URL | ||||||
|  | 
 | ||||||
|  | KOPS_BIN=${BINDIR}/kops | ||||||
|  | wget -qO "${KOPS_BIN}" "$KOPS_BASE_URL/$(go env GOOS)/$(go env GOARCH)/kops" | ||||||
|  | chmod +x "${KOPS_BIN}" | ||||||
|  | 
 | ||||||
|  | # Default cloud provider to aws | ||||||
|  | if [[ -z "${CLOUD_PROVIDER:-}" ]]; then | ||||||
|  |   CLOUD_PROVIDER="aws" | ||||||
|  | fi | ||||||
|  | echo "CLOUD_PROVIDER=${CLOUD_PROVIDER}" | ||||||
|  | 
 | ||||||
|  | # KOPS_STATE_STORE holds metadata about the clusters we create | ||||||
|  | if [[ -z "${KOPS_STATE_STORE:-}" ]]; then | ||||||
|  |   echo "Must specify KOPS_STATE_STORE" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | echo "KOPS_STATE_STORE=${KOPS_STATE_STORE}" | ||||||
|  | export KOPS_STATE_STORE | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if [[ -z "${ADMIN_ACCESS:-}" ]]; then | ||||||
|  |   ADMIN_ACCESS="0.0.0.0/0" # Or use your IPv4 with /32 | ||||||
|  | fi | ||||||
|  | echo "ADMIN_ACCESS=${ADMIN_ACCESS}" | ||||||
|  | 
 | ||||||
|  | create_args="--networking calico" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Note that these arguments for kubetest2 | ||||||
|  | KUBETEST2_ARGS=() | ||||||
|  | KUBETEST2_ARGS+=("-v=2") | ||||||
|  | KUBETEST2_ARGS+=("--cloud-provider=${CLOUD_PROVIDER}") | ||||||
|  | KUBETEST2_ARGS+=("--cluster-name=${CLUSTER_NAME:-}") | ||||||
|  | KUBETEST2_ARGS+=("--kops-binary-path=${KOPS_BIN}") | ||||||
|  | KUBETEST2_ARGS+=("--admin-access=${ADMIN_ACCESS:-}") | ||||||
|  | KUBETEST2_ARGS+=("--env=KOPS_FEATURE_FLAGS=${KOPS_FEATURE_FLAGS:-}") | ||||||
|  | 
 | ||||||
|  | # The caller can set DELETE_CLUSTER=false to stop us deleting the cluster | ||||||
|  | if [[ -z "${DELETE_CLUSTER:-}" ]]; then | ||||||
|  |   DELETE_CLUSTER="true" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | kubetest2 kops "${KUBETEST2_ARGS[@]}" \ | ||||||
|  |   --up \ | ||||||
|  |   --kubernetes-version="${K8S_VERSION}" \ | ||||||
|  |   --create-args="${create_args}" \ | ||||||
|  | 
 | ||||||
|  | kubetest2 kops "${KUBETEST2_ARGS[@]}" \ | ||||||
|  |   --test=kops \ | ||||||
|  |   --kubernetes-version="${K8S_VERSION}" \ | ||||||
|  |   -- \ | ||||||
|  |   --test-package-version="${K8S_VERSION}" \ | ||||||
|  |   --parallel=30 \ | ||||||
|  |   --skip-regex="\[Serial\]" \ | ||||||
|  |   --focus-regex="\[Conformance\]" | ||||||
|  | 
 | ||||||
|  | if [[ "${DELETE_CLUSTER:-}" == "true" ]]; then | ||||||
|  |   kubetest2 kops "${KUBETEST2_ARGS[@]}" --down | ||||||
|  |   DELETE_CLUSTER=false # Don't delete again in trap | ||||||
|  | fi | ||||||
		Loading…
	
		Reference in New Issue