@dictcp (https://dictcp.men)
Session at HKOSCon 2020: https://hkoscon.org/2020/topics/automating-kubernetes-gitops
Slide: https://docs.google.com/presentation/d/1rA6bhCGMydP-NOmFu7fv0zbBSzGvK9GLn63H8dHLP2g
Everyone with their clean Ubuntu 18.04 VM in hand (10mins) Install k3s, the lightweight Kubernetes distribution from Rancher (10mins) Install helm3 Prepare the git repository for GitOps (10mins) Install fluxcd via helm3 and playaround (10mins) Playaround Helm operator (bonus)
You need
- a GitHub account (to access this material and setup gitops flow)
- a working Kubernetes in the hands-on session (to s)
- multipass VM (local installation, recommended)
- [DigitalOcean VM] (remote installation)
- Install multipass on https://multipass.run
- support Windows 10 Pro+, Mac OS X, Linux
- Mac OS X (with homebrew installed):
brew cask install multipass - Ubuntu (or any Linux distro with snap installed):
sudo snap install multipass --classic
- Start Command prompt / Terminal
- Execute
multipass launch -d 30G -m 2G --name fluxcd-workshop 18.04 - Depends on network condition, you need to wait for 5-20 mins.
- Execute
multipass shell fluxcd-workshopto obtain shell in the VMs
- Execute
curl -sfL https://get.k3s.io | sh -in the VM - Depends on network condition, you need to wait for 5-10 mins.
- You should have your local Kubernetes cluster installed. To verify, execute
sudo -i k3s kubectl get nodes, it should give you something like
NAME STATUS ROLES AGE VERSION
fluxcd-workshop Ready master 5m53s v1.18.3+k3s1`
- Make sure the cluster setup is avaiable by the following commands:
$ mkdir .kube
$ sudo cat /etc/rancher/k3s/k3s.yaml > .kube/config
Normally you can install helm and fluxctl with the following 2 commands:
sudo snap install kubectl --classic
sudo snap install helm --classic --channel=3.0/stable
sudo snap install fluxctl --classic
- Helm
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
$ helm version
version.BuildInfo{Version:"v3.2.3", GitCommit:"8f832046e258e2cb800894579b1b3b50c2d83492", GitTreeState:"clean", GoVersion:"go1.13.12"}
- fluxctl
wget -O fluxctl https://github.com/fluxcd/flux/releases/download/1.19.0/fluxctl_linux_amd64
chmod +x fluxctl
sudo mv fluxctl /usr/local/bin/