Last active
July 29, 2021 13:55
-
-
Save goneri/27d6d048c8cb63641ec676f29f7bf08c to your computer and use it in GitHub Desktop.
Start kind in a VM (Virt-Lightning)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!/bin/bash | |
set -eux | |
vl start fedora-34 --memory 2000 --name kind-vm | |
target=$(vl status|awk '/kind-vm/ {print $4}') | |
public_ip=$(vl status|awk '/kind-vm/ {print $4}'|sed 's,.\+@,,') | |
rc_file=/tmp/k8s_rc | |
ssh $target ' | |
curl -L -o /tmp/kubectl "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" | |
chmod +x /tmp/kubectl | |
sudo mv /tmp/kubectl /usr/local/bin' | |
echo "kind: Cluster | |
apiVersion: kind.x-k8s.io/v1alpha4 | |
networking: | |
apiServerAddress: $public_ip | |
apiServerPort: 6443" > /tmp/kind.yaml | |
scp /tmp/kind.yaml $target:/tmp | |
ssh $target sudo curl -Lo /usr/local/bin/kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64 | |
ssh $target sudo chmod +x /usr/local/bin/kind /usr/local/bin/kubectl | |
ssh $target sudo dnf -y --disablerepo updates install podman | |
ssh $target sudo "sed -i 's,^short-name-mode=.*,short-name-mode=\"permissive\",' /etc/containers/registries.conf" | |
ssh $target sudo /usr/local/bin/kind create cluster --config /tmp/kind.yaml | |
ssh $target sudo kubectl create serviceaccount k8sadmin -n kube-system | |
ssh $target sudo kubectl create clusterrolebinding k8sadmin --clusterrole=cluster-admin --serviceaccount=kube-system:k8sadmin | |
ssh $target sudo kubectl create clusterrolebinding k8sadmin-view --clusterrole view --user k8sadmin | |
ssh $target sudo kubectl create clusterrolebinding k8sadmin-secret-reader --clusterrole secret-reader --user k8sadmin | |
ssh $target sudo kubectl -n kube-system describe secret $(ssh $target sudo kubectl -n kube-system get secret|awk '/^k8sadmin-token/ {print $1}')|awk '/token:/ {print "export K8S_AUTH_API_KEY=" $2}' >> ${rc_file} | |
echo export K8S_AUTH_VERIFY_SSL=False >> ${rc_file} | |
echo export K8S_AUTH_HOST=https://${public_ip}:6443 >> ${rc_file} | |
test -d ~/.kube || mkdir ~/.kube | |
ssh $target sudo kind get kubeconfig |grep -v 'enabling experimental podman provider' > ~/.kube/config | |
echo "The ${rc_file} has been generated. You can source it with:" | |
echo " . ${rc_file}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment