- vi group_vars/all
- ./install_requirements.sh
cd tf-libvirt
ssh-keygen -t rsa -b 4096 -f id_rsa -C tf-libvirt -N "" -q
cd ..
- ansible-playbook playbook_terraform_kvm.yml
- ansible-playbook playbook_kubeadm_dependencies.yml
- ansible-playbook playbook_kubeadm_controlplane.yml
- ansible-playbook playbook_kubeadm_workers.yml
wait for all pods to be 'Running'
export KUBECONFIG=/tmp/kubeadm-kubeconfig
kubectl get pods -A
- ansible-playbook playbook_metallb.yml
- ansible-playbook playbook_certs.yml
- ansible-playbook playbook_nginx_ingress.yml
wait for NGINX Ingress
# admission to be 'Completed', controller 'Running'
kubectl get pods -n ingress-nginx
# wait for non-empty IP address
kubectl get service -n ingress-nginx ingress-nginx-controller -o jsonpath="{.status.loadBalancer.ingress}"
- ansible-playbook playbook_deploy_myhello.yml
wait for deployment to be Ready 1/1
kubectl get deployment golang-hello-world-web -n default
- test myhello deployment exposed via NGINX Ingress
lb_ip=$(kubectl get service -n ingress-nginx ingress-nginx-controller -o jsonpath="{.status.loadBalancer.ingress[].ip}")
# test without needing DNS
curl -k --resolve kubeadm.local:443:${lb_ip} https://kubeadm.local:443/myhello/
# test by adding DNS to local hosts file
echo ${lb_ip} kubeadm.local | sudo tee -a /etc/hosts
curl -k https://kubeadm.local/myhello/