From 9bc67d3cc7b2d02d36ffb6a5e5889a3615b6fcb6 Mon Sep 17 00:00:00 2001 From: jwcesign Date: Thu, 8 Jun 2023 15:10:52 +0800 Subject: [PATCH] feat: Add script to deploy k8s metrics-server in member cluster Signed-off-by: jwcesign --- hack/deploy-k8s-metrics-server.sh | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 hack/deploy-k8s-metrics-server.sh diff --git a/hack/deploy-k8s-metrics-server.sh b/hack/deploy-k8s-metrics-server.sh new file mode 100755 index 000000000000..2358f7bd3de2 --- /dev/null +++ b/hack/deploy-k8s-metrics-server.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -o errexit +set -o nounset + +_tmp=$(mktemp -d) + +function usage() { + echo "This script will deploy metrics-server in member clusters." + echo "Usage: hack/deploy-k8s-metrics-server.sh " + echo "Example: hack/deploy-k8s-metrics-server.sh ~/.kube/members.config member1" +} + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +if [[ $# -ne 2 ]]; then + usage + exit 1 +fi + +# check kube config file existence +if [[ ! -f "${1}" ]]; then + echo -e "ERROR: failed to get kubernetes config file: '${1}', not existed.\n" + usage + exit 1 +fi +MEMBER_CLUSTER_KUBECONFIG=$1 + +# check context existence +if ! kubectl config get-contexts "${2}" --kubeconfig="${MEMBER_CLUSTER_KUBECONFIG}" > /dev/null 2>&1; +then + echo -e "ERROR: failed to get context: '${2}' not in ${MEMBER_CLUSTER_KUBECONFIG}. \n" + usage + exit 1 +fi +MEMBER_CLUSTER_NAME=$2 + +# get deploy yaml +wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.3/components.yaml -O "${_tmp}/components.yaml" +sed -i'' -e 's/args:/args:\n - --kubelet-insecure-tls=true/' "${_tmp}/components.yaml" + +# deploy metrics-server in member cluster +kubectl --kubeconfig="${MEMBER_CLUSTER_KUBECONFIG}" --context="${MEMBER_CLUSTER_NAME}" apply -f "${_tmp}/components.yaml"