Skip to content

Instantly share code, notes, and snippets.

@ferdinandosimonetti
Last active May 7, 2023 02:43
Show Gist options
  • Save ferdinandosimonetti/c293e1421cdc2beb136fb6c32d206530 to your computer and use it in GitHub Desktop.
Save ferdinandosimonetti/c293e1421cdc2beb136fb6c32d206530 to your computer and use it in GitHub Desktop.
MicroK8s (+ some IaaC tools) preparation via Multipass for Windows 10 Pro (client Hyper-V enabled)
# Enable Hyper-V feature (reboot needed)
#### Install Multipass from https://github.com/CanonicalLtd/multipass/releases/
#### Create your Ubuntu LTS VM (on your Hyper-V / Virtualbox machine)
multipass launch --cpus 2 --mem 2G --name microk8s --disk 40G
# Update & upgrade
multipass exec microk8s -- sudo apt-get -y update
multipass exec microk8s -- sudo apt-get -y upgrade
multipass exec microk8s -- sudo apt -y autoremove
# getting rid of "nano" as default editor
multipass exec microk8s -- sudo update-alternatives --set editor /usr/bin/vim.basic
# Set basic GIT info
multipass exec microk8s -- git config --global user.name 'Name Surname'
multipass exec microk8s -- git config --global user.email 'email@address.com'
# Install MicroK8s
multipass exec microk8s -- sudo snap install microk8s --classic
# Add "multipass" user to MicroK8s group
multipass exec microk8s -- sudo usermod -a -G microk8s multipass
# Add ACCEPT default for FORWARD iptables chain (probably not needed)
multipass exec microk8s -- sudo iptables -P FORWARD ACCEPT
# We'd like to save our IPTABLES rules between reboots
multipass exec microk8s -- sudo apt-get -qy install iptables-persistent netfilter-persistent python3-pip zip unzip software-properties-common
multipass exec microk8s -- sudo mkdir /etc/iptables
multipass exec microk8s -- "sudo iptables-save | sudo tee /etc/iptables/rules.v4"
# enabling useful addons
multipass exec microk8s -- microk8s.enable dns
multipass exec microk8s -- microk8s.enable storage
# Enabling .local/bin for PATH
multipass exec microk8s -- mkdir -p /home/multipass/.local/bin
multipass exec microk8s -- . /home/multipass/.profile
# Creating .kube dir
multipass exec microk8s -- mkdir -p /home/multipass/.kube
# installing Helm (overcoming "Error: error installing: the server could not find the requested resource" message)
multipass exec microk8s -- "microk8s.helm init --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | microk8s.kubectl apply -f -"
# Ansible
multipass exec microk8s -- sudo apt-add-repository -y --update ppa:ansible/ansible
sudo apt-get -y install ansible
# TFENV and latest Terraform version
git clone https://github.com/tfutils/tfenv.git /home/multipass/.tfenv
ln -s /home/multipass/.tfenv/bin/* /home/multipass/.local/bin
echo 'trust-tfenv: yes' > ~/.tfenv/use-gpgv
tfenv install latest
# install PIP3
sudo apt-get -y install python3-pip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment