From cdf74890ea8a3049e4754d898aae70a2a5094a08 Mon Sep 17 00:00:00 2001 From: Adolfo Delorenzo Date: Fri, 9 Jul 2021 03:51:20 +0200 Subject: [PATCH] Update 'firstboot.sh' --- firstboot.sh | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/firstboot.sh b/firstboot.sh index 95e62ba..d6925fd 100755 --- a/firstboot.sh +++ b/firstboot.sh @@ -34,40 +34,50 @@ docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /va #Add the portainer user to the docker group usermod -aG docker portainer -#Start minikube -sudo -u portainer minikube start --nodes 3 --driver=docker --ports=":30778" --ports=":9001" --docker-env "restart=unless-stopped" - -#Add the metrics server to the minikube cluster -sudo -u portainer minikube addons enable metrics-server - #Define Admin user and Password http POST http://localhost:9000/api/users/admin/init Username="portainer" Password="portainer1234" -#Add Portainer Agent to the local kind Kubernetes cluster -sudo -u portainer curl -L https://downloads.portainer.io/portainer-agent-k8s-nodeport.yaml -o /home/portainer/portainer-agent-k8s.yaml; sudo -u portainer kubectl apply -f /home/portainer/portainer-agent-k8s.yaml -sudo -u portainer rm /home/portainer/portainer-agent-k8s.yaml -sleep 15 - #Get the admin JWT token jwt=`http POST :9000/api/auth Username="portainer" Password="portainer1234" | jq '.jwt' | sed 's/^.//' | sed 's/.$//'` #Add local Docker endpoint -http --form POST :9000/api/endpoints \ -"Authorization: Bearer $jwt" \ -Name="docker" EndpointCreationType=1 +http --form POST :9000/api/endpoints "Authorization: Bearer $jwt" Name="docker" EndpointCreationType=1 + +#Start minikube +sudo -u portainer minikube start --nodes 2 --driver=docker --ports=":30778" --ports=":9001" + +#Add the metrics server to the minikube cluster +sudo -u portainer minikube addons enable metrics-server + +#Add ingress to the minikube cluster +sudo -u portainer minikube addons enable ingress + +#Add Portainer Agent to the local kind Kubernetes cluster +sudo -u portainer curl -qL https://downloads.portainer.io/portainer-agent-k8s-nodeport.yaml -o /home/portainer/portainer-agent-k8s.yaml; sudo -u portainer kubectl apply -f /home/portainer/portainer-agent-k8s.yaml +sudo -u portainer rm /home/portainer/portainer-agent-k8s.yaml + +#Check if the Portainer Agent is running +echo "" +echo "" +while true +do +agent_state=`sudo -u portainer kubectl get pod -n portainer | awk '{ print $3 }' | tail -1` +if [ "$agent_state" != "Running" ]; then + echo -ne '⚡ Portainer Agent Not Running yet\r' +else + break +fi +sleep 1 +done #Get mapped 30778 port from control-plane jwt=`http POST :9000/api/auth Username="portainer" Password="portainer1234" | jq '.jwt' | sed 's/^.//' | sed 's/.$//'` port=`docker port minikube | grep 30778 | head -1 | awk '$1=$1' FS=":" OFS=" " | awk '{ print $4 }'` #Add local Kubernetes endpoint -sleep 20 -sudo -u portainer http --form POST :9000/api/endpoints \ -"Authorization: Bearer $jwt" \ -Name="kubernetes" URL="tcp://10.0.2.8:$port" \ -EndpointCreationType=2 \ -TLS="true" TLSSkipVerify="true" \ -TLSSkipClientVerify="true" +sleep 5 +sudo -u portainer http --form POST :9000/api/endpoints "Authorization: Bearer $jwt" Name="kubernetes" URL="tcp://10.0.2.8:$port" EndpointCreationType=2 TLS="true" TLSSkipVerify="true" TLSSkipClientVerify="true" #Housekeeping sed -i /@reboot/d /etc/crontab +echo '@reboot root /usr/bin/tmux new-session -d /usr/local/bin/rebuild' >> /etc/crontab \ No newline at end of file