/ansible

Primary LanguageShell

Requirements

Step 1

Configure inventory/k8s.yml for k8s hosts. Set hosts for masters, nodes and etcd.

Also, you can change settings for kubespray values in inventory/group_vars.

After that you can run kubespray playbook for setup k8s cluster:

git submodule init
git submodule update
ansible-playbook kubespray/cluster.yml --become --become-user=root

Step 2

For next step we have to set a secret with token to API of DigitalOcean. Also, you have to create a namespace for this secret.

kubectl create namespace cert-manager
kubectl apply -f digitalocean-token.yml

Content of digitalocean-token.yml

apiVersion: v1
data:
  token: ...
kind: Secret
metadata:
  name: digitalocean-token
  namespace: cert-manager
type: Opaque

Step 3

Run post-install roles for k8s. Also, you have to create a namespace monitoring.

kubectl create namespace monitoring
ansible-playbook playbooks/k8s.yml 

WARNING! Be careful with running this playbook. It will reset configuration for prometheus, grafana, etc.