From c2932baa82e83fe54ea5b2fa98c0c34fa801ca6e Mon Sep 17 00:00:00 2001 From: Nico P <nickpoegel@aol.com> Date: Mon, 12 Jun 2023 22:08:00 +0200 Subject: [PATCH] fixed install script to work for non-root users. Also added install script for wsl environment. --- install_msa.sh | 27 ++++++++++++++-- install_msa_wsl.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 install_msa_wsl.sh diff --git a/install_msa.sh b/install_msa.sh index c69a908..9501ce7 100644 --- a/install_msa.sh +++ b/install_msa.sh @@ -1,9 +1,30 @@ #Save directory of the script in variable SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +USER_HOME=$(getent passwd $SUDO_USER | cut -d: -f6) #Download and install K3s, then create a single node cluster curl -sfL https://get.k3s.io | sh - +#Wait for availability of Traefik-CRDs in the cluster +counter=1 +retries=10 +sleeptime=10 +while [ $counter -le $retries ] +do + ((counter++)) + kubectl get ingressroute + if [ $? -eq 0 ]; then + break + else + if [ $counter -eq $retries ]; then + echo CRDs are not yet available, please install helm-chart manually + exit 1 + fi + echo CRDs not yet ready, retrying in $sleeptime seconds + sleep $sleeptime + fi +done + #Download Linkerd and install onto cluster linkerd version if [ $? -eq 0 ]; then @@ -12,7 +33,7 @@ else curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh fi -export PATH=$PATH:/root/.linkerd2/bin +export PATH=$PATH:$USER_HOME/.linkerd2/bin export KUBECONFIG=/etc/rancher/k3s/k3s.yaml linkerd install --crds | kubectl apply -f - @@ -30,14 +51,14 @@ else sudo apt-get install helm fi -#Wait for availability of CRDs in the cluster +#Wait for availability of Linkerd-CRDs in the cluster counter=1 retries=10 sleeptime=10 while [ $counter -le $retries ] do ((counter++)) - kubectl get ingressroute + kubectl get serviceprofiles if [ $? -eq 0 ]; then break else diff --git a/install_msa_wsl.sh b/install_msa_wsl.sh new file mode 100644 index 0000000..6eb7fde --- /dev/null +++ b/install_msa_wsl.sh @@ -0,0 +1,79 @@ +#Save directory of the script in variable +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +USER_HOME=$(getent passwd $SUDO_USER | cut -d: -f6) + +#Download and install K3s, then create a single node cluster +curl -sfL https://get.k3s.io | sh - + +#Wait for availability of Traefik-CRDs in the cluster +counter=1 +retries=10 +sleeptime=10 +while [ $counter -le $retries ] +do + ((counter++)) + kubectl get ingressroute + if [ $? -eq 0 ]; then + break + else + if [ $counter -eq $retries ]; then + echo CRDs are not yet available, please install helm-chart manually + exit 1 + fi + echo CRDs not yet ready, retrying in $sleeptime seconds + sleep $sleeptime + fi +done + +#Edit K3s service environment variable file to change access permissions to k3s.yaml +sudo echo K3S_KUBECONFIG_MODE=\"644\" >> /etc/systemd/system/k3s.service.env +sudo systemctl restart k3s + +#Download Linkerd and install onto cluster +linkerd version +if [ $? -eq 0 ]; then + echo Linkerd already installed +else + curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh +fi + +export PATH=$PATH:$USER_HOME/.linkerd2/bin +export KUBECONFIG=/etc/rancher/k3s/k3s.yaml + +linkerd install --crds | kubectl apply -f - +linkerd install | kubectl apply -f - + +#Install Helm if not present +helm version +if [ $? -eq 0 ]; then + echo Helm already installed +else + curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null + sudo apt-get install apt-transport-https --yes + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list + sudo apt-get update + sudo apt-get install helm +fi + +#Wait for availability of Linkerd-CRDs in the cluster +counter=1 +retries=10 +sleeptime=10 +while [ $counter -le $retries ] +do + ((counter++)) + kubectl get serviceprofiles + if [ $? -eq 0 ]; then + break + else + if [ $counter -eq $retries ]; then + echo CRDs are not yet available, please install helm-chart manually + exit 1 + fi + echo CRDs not yet ready, retrying in $sleeptime seconds + sleep $sleeptime + fi +done + +#Install Helm-Chart +helm install helm-msa $SCRIPT_DIR/helm/helm-msa -- GitLab