#!/usr/bin/env bash # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set +eux # MicroK8s installation sudo snap install yq sudo snap install microk8s --classic sudo usermod -a -G microk8s ubuntu newgrp microk8s sudo microk8s.status --wait-ready sudo microk8s.enable storage dns # sudo microk8s.enable storage rbac # sudo microk8s.enable storage helm # sudo microk8s.enable storage helm3 # Enables MetalLB PRIVATE_IP=$(hostname -I | awk '{print $1}') echo ${PRIVATE_IP} sudo microk8s.enable metallb:${PRIVATE_IP}-${PRIVATE_IP} # Updates the certificate to allow connections from outside as well (i.e. to the "public" IP). #sudo microk8s.stop sudo sed -i "s/\#MOREIPS/IP.3 = ${NEW_K8S_IP}/g" /var/snap/microk8s/current/certs/csr.conf.template cat /var/snap/microk8s/current/certs/csr.conf.template #sudo microk8s.refresh-certs -i #sudo microk8s.start # Retrieves and saves the credentials sudo microk8s.config | sed "s/server: .*/server: https:\/\/${NEW_K8S_IP}:16443/g" \ | tee ${HOME}/.kube/config echo echo Credentials saved at ${HOME}/.kube/config echo return 0