Go to file
zramsay 1ac0416038 latest working template with single control node (#3)
Co-authored-by: zramsay <zach@bluecollarcoding.ca>
Co-authored-by: Your Name <you@example.com>
Reviewed-on: #3
2024-07-30 12:40:30 +00:00
.vault latest working template with single control node (#3) 2024-07-30 12:40:30 +00:00
files/manifests latest working template with single control node (#3) 2024-07-30 12:40:30 +00:00
group_vars latest working template with single control node (#3) 2024-07-30 12:40:30 +00:00
host_vars latest working template with single control node (#3) 2024-07-30 12:40:30 +00:00
roles Update roles/requirements.yml 2024-07-23 12:36:24 +00:00
.gitignore update secret handling, add comments, etc 2024-07-11 00:08:17 +00:00
ansible.cfg prune old address, add basic template files 2024-06-06 20:05:18 +00:00
hosts latest working template with single control node (#3) 2024-07-30 12:40:30 +00:00
README.md prune old address, add basic template files 2024-06-06 20:05:18 +00:00
site.yml prune old address, add basic template files 2024-06-06 20:05:18 +00:00

Ansible Playbook to setup a simple k8s cluster

Checkout repo and switch to the directorty ~/lx-cad-deploy

Install ansible via virtual env

sudo apt install python3-pip python3.10-venv
python3.10 -m venv ~/.local/venv/ansible
source ~/.local/venv/ansible/bin/activate
pip install ansible
ansible --version

Install required roles:

ansible-galaxy install -f -p roles -r roles/requirements.yml

Generate token for the cluster, this assumes ansible vault has been setup

./roles/k8s/files/token-vault.sh ./group_vars/lx_cad/k8s-vault.yml

Configure firewalld and nginx for hosts

ansible-playbook -i hosts site.yml --tags=firewalld,nginx

Install Stack Orchestrator for control hosts

ansible-playbook -i hosts site.yml --tags=so --limit=so

Deploy k8s

ansible-playbook -i hosts site.yml --tags=k8s --limit=lx_cad

Install k8s helper tools

sudo ~/lx-cad-deploy/roles/k8s/files/get-kube-tools.sh

Verify cluster creation

kubie ctx lx-cad
kubectl get nodes -o wide

DNS Secret example

apiVersion: v1
data:
  access-token: XXX
kind: Secret
metadata:
  name: someprovider-dns
  namespace: cert-manager