From 0161ddc98a27e045113e640cce13a4004ae8c247 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 29 Dec 2024 04:33:44 +0100 Subject: [PATCH] Updated scripts --- scripts/bootstrap.sh | 15 ++++++++++----- scripts/helper.sh | 15 ++++++++++++--- scripts/join.sh | 3 ++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index c659244..d0823f1 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -1,6 +1,7 @@ #!/bin/bash set -e set -u +set -x SCRIPT_DIR=$(dirname -- "$(readlink -f -- "$BASH_SOURCE")") source ${SCRIPT_DIR}/helper.sh @@ -14,20 +15,24 @@ add_b2_key_to_k3s_env start_k3s # Copy over kubeconfig -ssh -t $REMOTE "sudo -S cat /etc/rancher/k3s/k3s.yaml" > ~/.kube/config +ssh -t $REMOTE "sudo -S cp /etc/rancher/k3s/k3s.yaml ~/k3s.yaml && sudo chown titan:titan ~/k3s.yaml" +scp $REMOTE:~/k3s.yaml ~/.kube/config +ssh -t $REMOTE "rm ~/k3s.yaml" # Update up to correct ip -sed -i -e "s/127.0.0.1/$REMOTE/" ~/.kube/config +sed -i -e "s/127.0.0.1/$REMOTE_IP/" ~/.kube/config + +add_interface_label # Add sops secret to the cluster -kubectl apply -f namespace.yaml -sops decrypt ./sops-gpg.yaml | kubectl apply -f - +kubectl apply -f ${SCRIPT_DIR}/namespace.yaml +sops decrypt ${SCRIPT_DIR}/sops-gpg.yaml | kubectl apply -f - # Bootstrap flux on the node flux bootstrap git --url ssh://git@huizinga.dev/Dreaded_X/flux-infra --branch=master --path=clusters/titan.lan.huizinga.dev --components source-controller,kustomize-controller,helm-controller # Update the ip to the control plane virtual ip -sed -i -e "s/$REMOTE/$VIP/" ~/.kube/config +sed -i -e "s/$REMOTE_IP/$VIP/" ~/.kube/config sleep 5 diff --git a/scripts/helper.sh b/scripts/helper.sh index 11f47e6..63ddae5 100644 --- a/scripts/helper.sh +++ b/scripts/helper.sh @@ -1,8 +1,9 @@ -VIP=10.0.0.200 +VIP=10.0.2.1 REMOTE_USER=titan +REMOTE_IP=$1 function set_remote() { - REMOTE="$REMOTE_USER@$1" + REMOTE="$REMOTE_USER@$REMOTE_IP" } function get_from_secret() { @@ -10,7 +11,7 @@ function get_from_secret() { } function get_b2_key() { - B2_SECRET_FILE=${SCRIPT_DIR}/common/postgres/b2-access-key.yaml + B2_SECRET_FILE=${SCRIPT_DIR}/../common/postgres/b2-access-key.yaml get_from_secret $B2_SECRET_FILE ACCESS_KEY_ID get_from_secret $B2_SECRET_FILE ACCESS_SECRET_KEY } @@ -27,3 +28,11 @@ EOF" function start_k3s() { ssh -t $REMOTE "sudo -S systemctl start k3s" } + +function add_interface_label() { + HOSTNAME=$(ssh -t $REMOTE "hostname" | tr -d "\n\r") + + echo "Please enter the vip interface name, (likely in the form: enpXs0):" + read INTERFACE + kubectl label nodes $HOSTNAME vip_interface=$INTERFACE --overwrite +} diff --git a/scripts/join.sh b/scripts/join.sh index f4f6d92..b6ef5e2 100755 --- a/scripts/join.sh +++ b/scripts/join.sh @@ -1,6 +1,7 @@ #!/bin/bash set -e set -u +set -x SCRIPT_DIR=$(dirname -- "$(readlink -f -- "$BASH_SOURCE")") source ${SCRIPT_DIR}/helper.sh @@ -17,6 +18,6 @@ ssh -t $REMOTE "curl -sfL https://get.k3s.io | K3S_TOKEN=$TOKEN INSTALL_K3S_SKIP add_b2_key_to_k3s_env start_k3s -sleep 5 +add_interface_label kubectl get nodes