Skip to content

Commit 65dc872

Browse files
authored
docs: add script to allow users to join upstream clusters to fleet hub (#187)
1 parent 2b226ea commit 65dc872

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

hack/membership/joinMC.sh

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# CAN ONLY BE RUN AFTER CREATING NEEDED HUB CLUSTER, MEMBER CLUSTERS AND AFTER INSTALLING THE FLEET MEMBER AGENT ON EACH MEMBER CLUSTER.
2+
# This can be achieved by running the script in fleet/hack/Azure/setup/joinMC.sh in the fleet repository https://github.com/Azure/fleet.
3+
# This script installs the fleet-networking member agents on each member cluster.
4+
5+
export REFRESH_TOKEN_IMAGE_TAG="$1"
6+
export FLEET_NETWORKING_AGENT_IMAGE_TAG="$2"
7+
8+
export HUB_CLUSTER="$3"
9+
export HUB_CLUSTER_CONTEXT=$(kubectl config view -o jsonpath="{.contexts[?(@.context.cluster==\"$HUB_CLUSTER\")].name}")
10+
export HUB_CLUSTER_ADDRESS=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$HUB_CLUSTER\")].cluster.server}")
11+
12+
for MC in "${@:4}"; do
13+
14+
export MEMBER_CLUSTER=$(kubectl config view -o jsonpath="{.contexts[?(@.context.cluster==\"$MC\")].name}")
15+
export MEMBER_CLUSTER_CONTEXT=$(kubectl config view -o jsonpath="{.contexts[?(@.context.cluster==\"$MC\")].name}")
16+
17+
echo "Switching to member cluster context..."
18+
kubectl config use-context $MEMBER_CLUSTER_CONTEXT
19+
20+
echo "Apply the Fleet networking CRDs..."
21+
kubectl apply -f config/crd/*
22+
23+
# # Install the fleet-networking member agent helm charts on the member cluster.
24+
# The variables below uses the fleet-networking images kept in the Microsoft Container Registry (MCR)
25+
echo "Retrieving image..."
26+
export REGISTRY="mcr.microsoft.com/aks/fleet"
27+
export MCS_CONTROLLER_MANAGER_IMAGE="mcs-controller-manager"
28+
export MEMBER_NET_CONTROLLER_MANAGER_IMAGE="member-net-controller-manager"
29+
export REFRESH_TOKEN_IMAGE="${REFRESH_TOKEN_NAME:-refresh-token}"
30+
export OUTPUT_TYPE="${OUTPUT_TYPE:-type=docker}"
31+
32+
echo "Uninstalling mcs-controller-manager..."
33+
helm uninstall mcs-controller-manager --wait
34+
35+
echo "Installing mcs-controller-manager..."
36+
helm install mcs-controller-manager ./charts/mcs-controller-manager/ \
37+
--set image.repository=$REGISTRY/$MCS_CONTROLLER_MANAGER_IMAGE \
38+
--set refreshtoken.repository=$REGISTRY/$REFRESH_TOKEN_IMAGE \
39+
--set refreshtoken.tag=$REFRESH_TOKEN_IMAGE_TAG \
40+
--set image.tag=$FLEET_NETWORKING_AGENT_IMAGE_TAG \
41+
--set image.pullPolicy=Always \
42+
--set refreshtoken.pullPolicy=Always \
43+
--set config.hubURL=$HUB_CLUSTER_ADDRESS \
44+
--set config.memberClusterName=$MEMBER_CLUSTER \
45+
--set enableV1Alpha1APIs=false \
46+
--set enableV1Beta1APIs=true \
47+
--set logVerbosity=8
48+
49+
echo "Uninstalling member-net-controller-manager..."
50+
helm uninstall member-net-controller-manager --wait
51+
52+
echo "Installing member-net-controller-manager..."
53+
helm install member-net-controller-manager ./charts/member-net-controller-manager/ \
54+
--set image.repository=$REGISTRY/$MEMBER_NET_CONTROLLER_MANAGER_IMAGE \
55+
--set refreshtoken.repository=$REGISTRY/$REFRESH_TOKEN_IMAGE \
56+
--set refreshtoken.tag=$REFRESH_TOKEN_IMAGE_TAG \
57+
--set image.tag=$FLEET_NETWORKING_AGENT_IMAGE_TAG \
58+
--set timage.pullPolicy=Always \
59+
--set refreshtoken.pullPolicy=Always \
60+
--set config.hubURL=$HUB_CLUSTER_ADDRESS \
61+
--set config.memberClusterName=$MEMBER_CLUSTER \
62+
--set enableV1Alpha1APIs=false \
63+
--set enableV1Beta1APIs=true \
64+
--set logVerbosity=8
65+
66+
kubectl get pods -A
67+
kubectl config use-context $HUB_CLUSTER_CONTEXT
68+
kubectl get membercluster $MEMBER_CLUSTER
69+
done

0 commit comments

Comments
 (0)