Files
netology-devops-gw-infra/kubespray_init.yml
2023-03-17 11:10:28 +07:00

34 lines
1.5 KiB
YAML

---
- name: Initialize kubespray configuration
hosts: all
gather_facts: false
tasks:
- name: Terraform - get current state
ansible.builtin.command:
chdir: "{{ playbook_dir }}/terraform"
cmd: terraform show -json
register: terraform_current_state
- name: Terraform - set node ips from state
set_fact:
kube_control_node_host={{ terraform_current_state.stdout|from_json|json_query('values.outputs.cluster_ips.value.external[0]') }}
kube_worker_1_node_host={{ terraform_current_state.stdout|from_json|json_query('values.outputs.cluster_ips.value.external[1]') }}
kube_worker_2_node_host={{ terraform_current_state.stdout|from_json|json_query('values.outputs.cluster_ips.value.external[2]') }}
- name: Kubespray - initialize inventory
ansible.builtin.template:
src: "{{ playbook_dir }}/templates/kubespray/inventory.ini.j2"
dest: "{{ playbook_dir }}/ansible/kubespray/inventory.ini"
- name: Kubespray - get source code
ansible.builtin.git:
repo: "https://github.com/kubernetes-sigs/kubespray.git"
dest: "{{ playbook_dir }}/vendor/kubespray"
version: "{{ kubespray_version }}"
- name: Kubespray - install requirements
ansible.builtin.pip:
chdir: "{{ playbook_dir }}/vendor/kubespray"
requirements: requirements.txt
- name: Kubectl - initialize inventory
ansible.builtin.template:
src: "{{ playbook_dir }}/templates/kubectl/inventory.j2"
dest: "{{ playbook_dir }}/ansible/kubectl_init/inventory"