Last active
September 6, 2017 19:42
-
-
Save mikejk8s/3a7c49339ed582afc844f53be7cc18f3 to your computer and use it in GitHub Desktop.
k8s federation the hard way script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
CLUSTERS=( "fed-a" "fed-b" ) | |
ZONES=( "us-central1-a" "us-central1-b") | |
for i in {0..1}; do | |
mkdir -p kubeconfigs/${CLUSTERS[${i}]}/ | |
SERVER=$(gcloud container clusters describe ${CLUSTERS[${i}]} \ | |
--zone "${ZONES[${i}]}" \ | |
--format 'value(endpoint)') | |
CERTIFICATE_AUTHORITY_DATA=$(gcloud container clusters describe ${CLUSTERS[${i}]} \ | |
--zone ${ZONES[${i}]} \ | |
--format 'value(masterAuth.clusterCaCertificate)') | |
CLIENT_CERTIFICATE_DATA=$(gcloud container clusters describe ${CLUSTERS[${i}]} \ | |
--zone ${ZONES[${i}]} \ | |
--format 'value(masterAuth.clientCertificate)') | |
CLIENT_KEY_DATA=$(gcloud container clusters describe ${CLUSTERS[${i}]} \ | |
--zone ${ZONES[${i}]} \ | |
--format 'value(masterAuth.clientKey)') | |
kubectl config set-cluster ${CLUSTERS[${i}]} --kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set clusters.${CLUSTERS[${i}]}.server \ | |
"https://${SERVER}" \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set clusters.${CLUSTERS[${i}]}.certificate-authority-data \ | |
${CERTIFICATE_AUTHORITY_DATA} \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set-credentials admin --kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set users.admin.client-certificate-data \ | |
${CLIENT_CERTIFICATE_DATA} \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set users.admin.client-key-data \ | |
${CLIENT_KEY_DATA} \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config set-context default \ | |
--cluster=${CLUSTERS[${i}]} \ | |
--user=admin \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
kubectl config use-context default \ | |
--kubeconfig kubeconfigs/${CLUSTERS[${i}]}/kubeconfig | |
cat > clusters/${CLUSTERS[${i}]}.yaml <<EOF | |
apiVersion: federation/v1beta1 | |
kind: Cluster | |
metadata: | |
name: ${CLUSTERS[${i}]} | |
spec: | |
serverAddressByClientCIDRs: | |
- clientCIDR: "0.0.0.0/0" | |
serverAddress: "https://${SERVER}" | |
secretRef: | |
name: ${CLUSTERS[${i}]} | |
EOF | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment