sed -i 's/#Port 22/Port 922/g' /etc/ssh/sshd_config && service sshd restart && curl -fsSL https://tailscale.com/install.sh | sh && tailscale up --ssh --accept-risk=lose-ssh || zypper rr tailscale-stable || true && export RELEASE="$(cat /etc/os-release | grep -o VERSION=".*" | sed 's/VERSION="//g;s/"//g')" && zypper ar -g -r "https://pkgs.tailscale.com/stable/opensuse/leap/$RELEASE/tailscale.repo" && zypper -n in tailscale && systemctl enable --now tailscaled && tailscale up --ssh --accept-risk=lose-ssh && tailscale set --auto-update #ssh NONROOTUSER@v555-microk8s sudo apt-get -y update sudo snap install core sudo snap install microk8s --classic sudo usermod -a -G microk8s $USER mkdir ~/.kube sudo chown -f -R $USER ~/.kube sudo microk8s config > ~/.kube/config sudo vim /etc/profile #add all below: alias kubectl="sudo microk8s kubectl" alias helm="sudo microk8s helm" [ -f /opt/.kubectl_aliases ] && source /opt/.kubectl_aliases #source <(kubectl completion zsh) source <(kubectl completion bash) alias k="kubectl" alias kl="k logs" alias ka="k attach" alias kexi="k exec -it" alias kd="k describe" alias ke="k edit" alias kaf="k apply -f" alias krmf="krm -f" sudo vim /opt/.kube_aliases #populate with aliases here: #https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases #echo 'alias kubectl="sudo microk8s kubectl"' >> ~/.bashrc #echo 'alias helm="sudo microk8s helm"' >> ~/.bashrc #source ~/.bashrc source /etc/profile exit ssh NONROOTUSER@v555-microk8s microk8s status --wait-ready microk8s enable dns #microk8s enable community #microk8s enable istio microk8s enable cert-manager microk8s enable helm microk8s enable storage #microk8s enable ingress microk8s enable registry microk8s enable dashboard microk8s enable rook-ceph microk8s enable prometheus microk8s enable metrics-server #microk8s enable hostpath-storage #install K9s: wget https://github.com/derailed/k9s/releases/download/v0.32.1/k9s_linux_amd64.deb sudo apt install -f ./k9s_linux_amd64.deb #INSTALL KUBEVIRT export VERSION=$(curl -s https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt) echo $VERSION kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml #check: kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.phase}" kubectl get all -n kubevirt install virtctl: MACOS: brew install virtctl LINUX (via KREW doesn't work but method below works on ubuntu 22.04): VERSION=$(kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.observedKubeVirtVersion}") ARCH=$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') || windows-amd64.exe echo ${ARCH} curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-${ARCH} chmod +x virtctl sudo install virtctl /usr/local/bin #NON-MICROK8S: install kube-prometheus (required for prom service account dependency): https://prometheus-operator.dev/docs/prologue/quick-start/ #NON-MICROK8S: enable istio-cni plugin for kubevirt: https://istio.io/latest/docs/setup/additional-setup/cni/#installing-with-helm #NON-MICROK8S: follow this istio-kubevirt guide to provision a vm in istio mesh: https://kubevirt.io/user-guide/virtual_machines/istio_service_mesh/ ###Install the CDI: https://github.com/kubevirt/containerized-data-importer export VERSION=$(curl -s https://api.github.com/repos/kubevirt/containerized-data-importer/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-operator.yaml kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-cr.yaml #Example: kubectl create -f https://raw.githubusercontent.com/kubevirt/containerized-data-importer/$VERSION/manifests/example/import-kubevirt-datavolume.yaml ##ADD microk8s instance outbound IP to rancher ingress configmap #DISCOVER IP TO ADD: dig +short myip.opendns.com @resolver1.opendns.com ##ADD IP to INGRESS allowlist: kubectx aks-stage-rancher-scus ke configmap -n ingress-nginx ingress-nginx-controller ###ADD new microk8s to Rancher Server: https://rancher.climavision.dev/dashboard/c/_/manager/provisioning.cattle.io.cluster/create?mode=import ##Create API key scoped for new microk8s for Octo to use: https://rancher.climavision.dev/dashboard/account/create-key #Add new microk8s as Deploy Target in Octo (proxied via Rancher):