diff --git a/README.md b/README.md index ce324cd..c089cbe 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ For more information on inputs, see the [API Documentation](https://developer.gi - `cluster_name`: The name of the cluster to create (default: `chart-testing`) - `wait`: The duration to wait for the control plane to become ready (default: `60s`) - `log_level`: The log level for kind +- `kubetl_version`: The kubectl version to use (default: v1.20.8) ### Example Workflow diff --git a/action.yml b/action.yml index b056b5e..1efedf5 100644 --- a/action.yml +++ b/action.yml @@ -17,6 +17,8 @@ inputs: description: "The duration to wait for the control plane to become ready (default: 60s)" log_level: description: "The log level for kind" + kubectl_version: + description: "The kubectl version to use (default: v1.20.8)" runs: using: "node12" main: "main.js" diff --git a/kind.sh b/kind.sh index f4effd3..d525fc2 100755 --- a/kind.sh +++ b/kind.sh @@ -20,7 +20,7 @@ set -o pipefail DEFAULT_KIND_VERSION=v0.11.1 DEFAULT_CLUSTER_NAME=chart-testing -KUBECTL_VERSION=v1.20.8 +DEFAULT_KUBECTL_VERSION=v1.20.8 show_help() { cat << EOF @@ -33,6 +33,7 @@ Usage: $(basename "$0") -n, --cluster-name The name of the cluster to create (default: chart-testing)" -w, --wait The duration to wait for the control plane to become ready (default: 60s)" -l, --log-level The log level for kind [panic, fatal, error, warning, info, debug, trace] (default: warning) + -k, --kubectl-version The kubectl version to use (default: $DEFAULT_KUBECTL_VERSION)" EOF } @@ -44,6 +45,7 @@ main() { local cluster_name="$DEFAULT_CLUSTER_NAME" local wait=60s local log_level= + local kubectl_version="$DEFAULT_KUBECTL_VERSION" parse_command_line "$@" @@ -145,6 +147,16 @@ parse_command_line() { exit 1 fi ;; + -k|--kubectl-version) + if [[ -n "${2:-}" ]]; then + kubectl_version="$2" + shift + else + echo "ERROR: '-k|--kubectl-version' cannot be empty." >&2 + show_help + exit 1 + fi + ;; *) break ;; @@ -168,7 +180,7 @@ install_kubectl() { mkdir -p "$kubectl_dir" - curl -sSLo "$kubectl_dir/kubectl" "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" + curl -sSLo "$kubectl_dir/kubectl" "https://storage.googleapis.com/kubernetes-release/release/$kubectl_version/bin/linux/amd64/kubectl" chmod +x "$kubectl_dir/kubectl" } diff --git a/main.sh b/main.sh index 7aec785..1b4453c 100755 --- a/main.sh +++ b/main.sh @@ -47,6 +47,10 @@ main() { args+=(--log-level "${INPUT_LOG_LEVEL}") fi + if [[ -n "${INPUT_KUBECTL_VERSION:-}" ]]; then + args+=(--kubectl-version "${INPUT_KUBECTL_VERSION}") + fi + "$SCRIPT_DIR/kind.sh" "${args[@]}" }