karmada/hack/karmada-bootstrap.sh

44 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
# This script starts a local karmada control plane based on current codebase and with a certain number of clusters joined.
# This script intended used in following scenarios:
# 1. used by developer to setup develop environment quickly.
# 2. used by e2e testing to setup test environment automatically.
KUBECONFIG_PATH=${KUBECONFIG_PATH:-"${HOME}/.kube"}
KARMADA_APISERVER_KUBECONFIG=${KARMADA_APISERVER_KUBECONFIG:-"/var/run/karmada"}
REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
export KUBECONFIG_PATH="${KUBECONFIG_PATH}"
"${REPO_ROOT}"/hack/local-up-karmada.sh
export KUBECONFIG="${KARMADA_APISERVER_KUBECONFIG}/karmada-apiserver.config"
# Install karmadactl
GO111MODULE=on go install "github.com/karmada-io/karmada/cmd/karmadactl"
# create clusters and join
MEMBER_CLUSTER_1_KUBECONFIG="${KUBECONFIG_PATH}/member1.config"
"${REPO_ROOT}"/hack/create-cluster.sh member1 "${MEMBER_CLUSTER_1_KUBECONFIG}"
karmadactl join member1 --member-cluster-kubeconfig="${MEMBER_CLUSTER_1_KUBECONFIG}"
MEMBER_CLUSTER_2_KUBECONFIG="${KUBECONFIG_PATH}/member2.config"
"${REPO_ROOT}"/hack/create-cluster.sh member2 "${MEMBER_CLUSTER_2_KUBECONFIG}"
karmadactl join member2 --member-cluster-kubeconfig="${MEMBER_CLUSTER_2_KUBECONFIG}"
function print_success() {
echo
echo "Local Karmada is running."
echo "To start using your karmada, run:"
cat <<EOF
export KUBECONFIG=${KUBECONFIG}
EOF
}
print_success