Files
iac-ansible-public/roles/kube-master/tasks/main.yml

55 lines
1.4 KiB
YAML

- name: Initialize Kubernetes master
command: kubeadm init --pod-network-cidr=192.168.3.0/16 --apiserver-advertise-address={{ ansible_default_ipv4.address }}
args:
creates: /etc/kubernetes/admin.conf
- name: Verificar se o diretório .kube já existe
stat:
path: /home/fenix/.kube
register: kube_dir
- name: Criar diretório .kube para o usuário ubuntu
ansible.builtin.file:
path: /home/fenix/.kube
state: directory
owner: fenix
group: ubuntu
mode: 0755
when: not kube_dir.stat.exists
- name: Set up kubeconfig for user
copy:
src: /etc/kubernetes/admin.conf
dest: /home/fenix/.kube/config
remote_src: yes
owner: fenix
group: ubuntu
mode: 0644
when: not kube_dir.stat.exists
- name: 3 Wait for Kubernetes API to be ready
shell: |
kubectl get --raw='/healthz'
environment:
KUBECONFIG: /home/fenix/.kube/config
register: api_health
until: api_health.rc == 0
retries: 10
delay: 6
become: yes
- name: Install Calico CNI
become: yes
become_user: fenix
shell: |
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
environment:
KUBECONFIG: /home/fenix/.kube/config
- name: Get kubeadm join command
shell: kubeadm token create --print-join-command
register: join_cmd
- name: Set join command as fact
set_fact:
kubeadm_join_command: "{{ join_cmd.stdout }}"