Skip to content

Commit a5ca5cc

Browse files
authored
Merge pull request karmada-io#6006 from SkySingh04/karmadactlInstallationCLI
feat : add cluster registration step in pull mode to installation-cli.yaml
2 parents cfebd4d + 1120b10 commit a5ca5cc

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

.github/workflows/installation-cli.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
hack/cli-testing-environment.sh
4545
4646
# run a single e2e
47+
export PULL_BASED_CLUSTERS="member1:${HOME}/.kube/member1.config"
4748
export KUBECONFIG=${HOME}/.kube/karmada-host.config:${HOME}/karmada/karmada-apiserver.config
4849
GO111MODULE=on go install github.com/onsi/ginkgo/v2/ginkgo
4950
ginkgo -v --race --trace -p --focus="[BasicPropagation] propagation testing deployment propagation testing" ./test/e2e/suites/base
@@ -87,6 +88,7 @@ jobs:
8788
hack/cli-testing-init-with-config.sh
8889
8990
# run a single e2e
91+
export PULL_BASED_CLUSTERS="config-member1:${HOME}/.kube/config-member1.config"
9092
export KUBECONFIG=${HOME}/.kube/karmada-host.config:${HOME}/karmada/karmada-apiserver.config
9193
GO111MODULE=on go install github.com/onsi/ginkgo/v2/ginkgo
9294
ginkgo -v --race --trace -p --focus="[BasicPropagation] propagation testing deployment propagation testing" ./test/e2e/suites/base

hack/cli-testing-environment.sh

+18-3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ kind load docker-image "${REGISTRY}/karmada-controller-manager:${VERSION}" --nam
9999
kind load docker-image "${REGISTRY}/karmada-scheduler:${VERSION}" --name="${HOST_CLUSTER_NAME}"
100100
kind load docker-image "${REGISTRY}/karmada-webhook:${VERSION}" --name="${HOST_CLUSTER_NAME}"
101101
kind load docker-image "${REGISTRY}/karmada-aggregated-apiserver:${VERSION}" --name="${HOST_CLUSTER_NAME}"
102+
kind load docker-image "${REGISTRY}/karmada-agent:${VERSION}" --name="${MEMBER_CLUSTER_1_NAME}"
102103

103104
# init Karmada control plane
104105
echo "Start init karmada control plane..."
@@ -113,6 +114,20 @@ ${BUILD_PATH}/karmadactl init --kubeconfig=${KUBECONFIG_PATH}/${HOST_CLUSTER_NAM
113114

114115
# join cluster
115116
echo "Join member clusters..."
116-
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_1_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config
117-
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
118-
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config
117+
TOKEN_CMD=$(${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config token create --print-register-command)
118+
TOKEN=$(echo "$TOKEN_CMD" | grep -o '\--token [^ ]*' | cut -d' ' -f2)
119+
HASH=$(echo "$TOKEN_CMD" | grep -o '\--discovery-token-ca-cert-hash [^ ]*' | cut -d' ' -f2)
120+
ENDPOINT=$(kubectl --kubeconfig ${HOME}/karmada/karmada-apiserver.config config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's|^https://||')
121+
122+
${BUILD_PATH}/karmadactl register ${ENDPOINT} \
123+
--token ${TOKEN} \
124+
--discovery-token-ca-cert-hash ${HASH} \
125+
--kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config \
126+
--cluster-name=${MEMBER_CLUSTER_1_NAME} \
127+
--karmada-agent-image "${REGISTRY}/karmada-agent:${VERSION}" \
128+
--v=4
129+
130+
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
131+
132+
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config
133+

hack/cli-testing-init-with-config.sh

+17-3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ kind load docker-image "${REGISTRY}/karmada-controller-manager:${VERSION}" --nam
9999
kind load docker-image "${REGISTRY}/karmada-scheduler:${VERSION}" --name="${HOST_CLUSTER_NAME}"
100100
kind load docker-image "${REGISTRY}/karmada-webhook:${VERSION}" --name="${HOST_CLUSTER_NAME}"
101101
kind load docker-image "${REGISTRY}/karmada-aggregated-apiserver:${VERSION}" --name="${HOST_CLUSTER_NAME}"
102+
kind load docker-image "${REGISTRY}/karmada-agent:${VERSION}" --name="${MEMBER_CLUSTER_1_NAME}"
102103

103104
# Ensure the parent directory of CONFIG_FILE_PATH exists
104105
CONFIG_DIR=$(dirname "${CONFIG_FILE_PATH}")
@@ -150,6 +151,19 @@ ${BUILD_PATH}/karmadactl init --config=${CONFIG_FILE_PATH}
150151

151152
# join cluster
152153
echo "Join member clusters..."
153-
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_1_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config
154-
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
155-
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config
154+
TOKEN_CMD=$(${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config token create --print-register-command)
155+
TOKEN=$(echo "$TOKEN_CMD" | grep -o '\--token [^ ]*' | cut -d' ' -f2)
156+
HASH=$(echo "$TOKEN_CMD" | grep -o '\--discovery-token-ca-cert-hash [^ ]*' | cut -d' ' -f2)
157+
ENDPOINT=$(kubectl --kubeconfig ${HOME}/karmada/karmada-apiserver.config config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's|^https://||')
158+
159+
${BUILD_PATH}/karmadactl register ${ENDPOINT} \
160+
--token ${TOKEN} \
161+
--discovery-token-ca-cert-hash ${HASH} \
162+
--kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config \
163+
--cluster-name=${MEMBER_CLUSTER_1_NAME} \
164+
--karmada-agent-image "${REGISTRY}/karmada-agent:${VERSION}" \
165+
--v=4
166+
167+
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
168+
169+
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config

0 commit comments

Comments
 (0)