Skip to content

Commit f223397

Browse files
committed
feat: enhance cluster registration process by automating token retrieval and registration steps
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
1 parent 95ea2a5 commit f223397

File tree

3 files changed

+46
-42
lines changed

3 files changed

+46
-42
lines changed

.github/workflows/installation-cli.yaml

+16-36
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
hack/cli-testing-environment.sh
4545
4646
# run a single e2e
47-
export KUBECONFIG=${HOME}/karmada/karmada-apiserver.config
47+
export KUBECONFIG=${HOME}/.kube/karmada-host.config:${HOME}/karmada/karmada-apiserver.config
4848
GO111MODULE=on go install github.com/onsi/ginkgo/v2/ginkgo
4949
ginkgo -v --race --trace -p --focus="[BasicPropagation] propagation testing deployment propagation testing" ./test/e2e/
5050
- name: export logs
@@ -82,45 +82,25 @@ jobs:
8282
- name: run karmadactl init with config file test
8383
run: |
8484
export CLUSTER_VERSION=kindest/node:${{ matrix.k8s }}
85-
85+
8686
# Run custom test for workload configuration deployment
8787
hack/cli-testing-init-with-config.sh
8888
8989
# run a single e2e
90-
export KUBECONFIG=${HOME}/karmada/karmada-apiserver.config
90+
export KUBECONFIG=${HOME}/.kube/karmada-host.config:${HOME}/karmada/karmada-apiserver.config
9191
GO111MODULE=on go install github.com/onsi/ginkgo/v2/ginkgo
9292
ginkgo -v --race --trace -p --focus="[BasicPropagation] propagation testing deployment propagation testing" ./test/e2e/
93-
94-
- name: Get token info for registration
95-
id: token
96-
run: |
97-
export KUBECONFIG=${HOME}/karmada/karmada-apiserver.config
98-
CMD=$(karmadactl token create --print-register-command --kubeconfig $KUBECONFIG)
99-
TOKEN=$(echo "$CMD" | grep -o '\--token [^ ]*' | cut -d' ' -f2)
100-
HASH=$(echo "$CMD" | grep -o '\--discovery-token-ca-cert-hash [^ ]*' | cut -d' ' -f2)
101-
ENDPOINT=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's|^https://||')
102-
echo "token=$TOKEN" >> $GITHUB_OUTPUT
103-
echo "hash=$HASH" >> $GITHUB_OUTPUT
104-
echo "endpoint=$ENDPOINT" >> $GITHUB_OUTPUT
105-
106-
- name: Register cluster using token
107-
run: |
108-
karmadactl register ${{ steps.token.outputs.endpoint }} \
109-
--token ${{ steps.token.outputs.token }} \
110-
--discovery-token-ca-cert-hash ${{ steps.token.outputs.hash }} \
111-
--discovery-timeout=10m \
112-
--kubeconfig ${HOME}/karmada/karmada-apiserver.config
113-
11493
- name: export logs for config test
115-
if: always()
116-
run: |
117-
export ARTIFACTS_PATH=${{ github.workspace }}/karmadactl-test-logs/${{ matrix.k8s }}/config
118-
mkdir -p $ARTIFACTS_PATH
119-
mkdir -p $ARTIFACTS_PATH/karmada-host
120-
kind export logs --name=karmada-host $ARTIFACTS_PATH/karmada-host
121-
- name: upload config test logs
122-
if: always()
123-
uses: actions/upload-artifact@v4
124-
with:
125-
name: karmadactl_config_test_logs_${{ matrix.k8s }}
126-
path: ${{ github.workspace }}/karmadactl-test-logs/${{ matrix.k8s }}/config/
94+
if: always()
95+
run: |
96+
export ARTIFACTS_PATH=${{ github.workspace }}/karmadactl-test-logs/${{ matrix.k8s }}/config
97+
mkdir -p $ARTIFACTS_PATH
98+
99+
mkdir -p $ARTIFACTS_PATH/karmada-host
100+
kind export logs --name=karmada-host $ARTIFACTS_PATH/karmada-host
101+
- name: upload config test logs
102+
if: always()
103+
uses: actions/upload-artifact@v4
104+
with:
105+
name: karmadactl_config_test_logs_${{ matrix.k8s }}
106+
path: ${{ github.workspace }}/karmadactl-test-logs/${{ matrix.k8s }}/config/

hack/cli-testing-environment.sh

+15-3
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,18 @@ ${BUILD_PATH}/karmadactl init --kubeconfig=${KUBECONFIG_PATH}/${HOST_CLUSTER_NAM
113113

114114
# join cluster
115115
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
116+
TOKEN_CMD=$(${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config token create --print-register-command)
117+
TOKEN=$(echo "$TOKEN_CMD" | grep -o '\--token [^ ]*' | cut -d' ' -f2)
118+
HASH=$(echo "$TOKEN_CMD" | grep -o '\--discovery-token-ca-cert-hash [^ ]*' | cut -d' ' -f2)
119+
ENDPOINT=$(kubectl --kubeconfig ${HOME}/karmada/karmada-apiserver.config config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's|^https://||')
120+
121+
${BUILD_PATH}/karmadactl register ${ENDPOINT} \
122+
--token ${TOKEN} \
123+
--discovery-token-ca-cert-hash ${HASH} \
124+
--discovery-timeout=10m \
125+
--kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config \
126+
--cluster-name=${MEMBER_CLUSTER_1_NAME}
127+
128+
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
129+
130+
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config

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

+15-3
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,18 @@ ${BUILD_PATH}/karmadactl init --config=${CONFIG_FILE_PATH}
150150

151151
# join cluster
152152
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
153+
TOKEN_CMD=$(${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config token create --print-register-command)
154+
TOKEN=$(echo "$TOKEN_CMD" | grep -o '\--token [^ ]*' | cut -d' ' -f2)
155+
HASH=$(echo "$TOKEN_CMD" | grep -o '\--discovery-token-ca-cert-hash [^ ]*' | cut -d' ' -f2)
156+
ENDPOINT=$(kubectl --kubeconfig ${HOME}/karmada/karmada-apiserver.config config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's|^https://||')
157+
158+
${BUILD_PATH}/karmadactl register ${ENDPOINT} \
159+
--token ${TOKEN} \
160+
--discovery-token-ca-cert-hash ${HASH} \
161+
--discovery-timeout=10m \
162+
--kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_1_NAME}.config \
163+
--cluster-name=${MEMBER_CLUSTER_1_NAME}
164+
165+
${BUILD_PATH}/karmadactl --kubeconfig ${HOME}/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_2_NAME} --cluster-kubeconfig=${KUBECONFIG_PATH}/${MEMBER_CLUSTER_2_NAME}.config
166+
167+
kubectl wait --for=condition=Ready clusters --all --timeout=800s --kubeconfig=${HOME}/karmada/karmada-apiserver.config

0 commit comments

Comments
 (0)