From 5650fc8fdbd72e11b2c2178f4192f8b1819d304d Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Fri, 1 Sep 2023 16:44:24 +0100 Subject: [PATCH] Added kind helpers Signed-off-by: Marcus Noble --- home/.bin/kind-create-cluster | 118 ++++++++++++++++++++++++++++++++++ home/.bin/kind-delete-cluster | 31 +++++++++ 2 files changed, 149 insertions(+) create mode 100755 home/.bin/kind-create-cluster create mode 100755 home/.bin/kind-delete-cluster diff --git a/home/.bin/kind-create-cluster b/home/.bin/kind-create-cluster new file mode 100755 index 0000000..b08dd7f --- /dev/null +++ b/home/.bin/kind-create-cluster @@ -0,0 +1,118 @@ +#!/usr/bin/env bash + +source .utils + +# Force using the `go install` version as we need to pin to 0.19 for now +alias kind=$GOPATH/bin/kind + +kind --version | grep "0.19." > /dev/null +if [[ "$?" != "0" ]]; then + echo "Kind v0.19.0 is required" + exit 1 +fi + +NAME="" +VERSION="1.28.0@sha256:dad5a6238c5e41d7cac405fae3b5eda2ad1de6f1190fa8bfc64ff5bb86173213" +NODES="2" +FEATURE_GATES="ValidatingAdmissionPolicy" +RUNTIME_CONFIG="admissionregistration.k8s.io/v1beta1" + +print_usage() { + orange "kind-create-cluster - create a Kind cluster" + echo " " + underline "Usage:" + echo "kind-create-cluster [cluster-name]" + echo " " + echo " " + underline "Options:" + echo "-h, --help show this help text" + echo "-v, --version the version of kubernetes to use (default: ${VERSION})" + echo "-n, --nodes the number of worker nodes (default: ${NODES})" + echo "-f, --feature-gates a comma seperated list of feature-gates to enable (default: ${FEATURE_GATES})" + echo "-r, --runtime-config a comma seperated list of API versions to enable (default: ${RUNTIME_CONFIG})" +} + +while test $# -gt 0; do + case "$1" in + -n|--nodes) + shift + NODES=$1 + shift + ;; + -v|--version) + shift + VERSION=$1 + shift + ;; + -f|--feature-gates) + shift + FEATURE_GATES=$1 + shift + ;; + -r|--runtime-config) + shift + RUNTIME_CONFIG=$1 + shift + ;; + -h|--help) + print_usage + exit 0 + ;; + *) + break + ;; + esac +done + +# Positional args +NAME=${1:-$(LC_ALL=C tr -dc a-z ${CONFIG_FILE} + +cat ${CONFIG_FILE} + +kind create cluster --config ${CONFIG_FILE} diff --git a/home/.bin/kind-delete-cluster b/home/.bin/kind-delete-cluster new file mode 100755 index 0000000..22ecb0a --- /dev/null +++ b/home/.bin/kind-delete-cluster @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +source .utils + +# Force using the `go install` version as we need to pin to 0.19 for now +alias kind=$GOPATH/bin/kind + +CONTEXT_NAME=$(kubectl config current-context | sed -e "s/kind-//") + +kind --version | grep "0.19." > /dev/null +if [[ "$?" != "0" ]]; then + echo "Kind v0.19.0 is required" + exit 1 +fi + +print_usage() { + orange "kind-delete-cluster - delete a Kind cluster" + echo " " + underline "Usage:" + echo "kind-delete-cluster [cluster-name]" + echo " " + echo "If no cluster-name is provided it will attempt to get it from the current kubectl context" + echo " " + underline "Options:" + echo "-h, --help show this help text" +} + +# Positional args +NAME=${1:-${CONTEXT_NAME}} + +kind delete cluster --name ${NAME}