From 5313897329a4b11187ee2e6b55beba05602e55c3 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 13 Jan 2020 21:28:49 +0100 Subject: fixup! kubernetes: nicer layout for playook includes and variables --- common/kubernetes-cluster-layout.yml | 46 ++++++++++++++++++++++++++++++++++ common/kubernetes-prepare.yml | 45 --------------------------------- common/kubernetes.yml | 2 +- inventory/group_vars/k8s-test/main.yml | 4 --- spreadspace/k8s-test.yml | 5 +++- 5 files changed, 51 insertions(+), 51 deletions(-) create mode 100644 common/kubernetes-cluster-layout.yml delete mode 100644 common/kubernetes-prepare.yml diff --git a/common/kubernetes-cluster-layout.yml b/common/kubernetes-cluster-layout.yml new file mode 100644 index 00000000..64856fc5 --- /dev/null +++ b/common/kubernetes-cluster-layout.yml @@ -0,0 +1,46 @@ +--- +- name: create host groups for kubernetes cluster + hosts: "{{ kubernetes_cluster_layout.nodes_group }}" + connection: local + gather_facts: no + run_once: yes + tasks: + - name: sanity check - fail if masters are not included in nodes + assert: + msg: "the cluster node group '{{ kubernetes_cluster_layout.nodes_group }}' must include *all* nodes (master and non-master)" + that: kubernetes_cluster_layout.masters | difference(ansible_play_hosts_all) | length == 0 + + - name: sanity check - fail if primary master is not in masters + assert: + msg: "kubernetes_cluster_layout.masters must include kubernetes_cluster_layout.primary_master" + that: kubernetes_cluster_layout.primary_master is undefined or kubernetes_cluster_layout.primary_master in kubernetes_cluster_layout.masters + + - name: sanity check - fail on multiple masters if no primary master is configured + assert: + msg: "For multiple masters to work you need to define kubernetes_cluster_layout.primary_master" + that: (kubernetes_cluster_layout.masters | length) == 1 or kubernetes_cluster_layout.primary_master is defined + + - name: create group for all kubernetes nodes + loop: "{{ ansible_play_hosts_all }}" + add_host: + name: "{{ item }}" + inventory_dir: "{{ hostvars[item].inventory_dir }}" + group: _kubernetes_nodes_ + changed_when: False + + - name: create group for kubernetes master nodes + loop: "{{ kubernetes_cluster_layout.masters }}" + add_host: + name: "{{ item }}" + inventory_dir: "{{ hostvars[item].inventory_dir }}" + group: _kubernetes_masters_ + changed_when: False + + - name: create group for kubernetes primary master + vars: + item: "{{ kubernetes_cluster_layout.primary_master | default(kubernetes_cluster_layout.masters[0]) }}" + add_host: + name: "{{ item }}" + inventory_dir: "{{ hostvars[item].inventory_dir }}" + group: _kubernetes_primary_master_ + changed_when: False diff --git a/common/kubernetes-prepare.yml b/common/kubernetes-prepare.yml deleted file mode 100644 index c91d1962..00000000 --- a/common/kubernetes-prepare.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -- name: create host groups - hosts: "{{ kubernetes_nodes_group }}" - connection: local - gather_facts: no - run_once: yes - tasks: - - name: sanity check - fail if masters are not included in nodes - assert: - msg: "the cluster node group '{{ kubernetes_nodes_group }}' must include *all* nodes (master and non-master)" - that: kubernetes_masters | difference(ansible_play_hosts_all) | length == 0 - - - name: sanity check - fail if primary master is not in masters - when: kubernetes_primary_master is defined - assert: - msg: "kubernetes_masters must include kubernetes_primary_master" - that: kubernetes_primary_master in kubernetes_masters - - - name: sanity check - fail on multiple masters if no primary master is configured - assert: - msg: "For multiple masters to work you need to define kubernetes_primary_master" - that: (kubernetes_masters | length) == 1 or kubernetes_primary_master is defined - - - name: create group for all kubernetes nodes - loop: "{{ ansible_play_hosts_all }}" - add_host: - name: "{{ item }}" - inventory_dir: "{{ hostvars[kubernetes_masters[0]].inventory_dir }}" - group: _kubernetes_nodes_ - changed_when: False - - - name: create group for kubernetes master nodes - loop: "{{ kubernetes_masters }}" - add_host: - name: "{{ item }}" - inventory_dir: "{{ hostvars[kubernetes_masters[0]].inventory_dir }}" - group: _kubernetes_masters_ - changed_when: False - - - name: create group for kubernetes primary master - add_host: - name: "{{ kubernetes_primary_master | default(kubernetes_masters[0]) }}" - inventory_dir: "{{ hostvars[kubernetes_masters[0]].inventory_dir }}" - group: _kubernetes_primary_master_ - changed_when: False diff --git a/common/kubernetes.yml b/common/kubernetes.yml index adcaf5e7..21af11a6 100644 --- a/common/kubernetes.yml +++ b/common/kubernetes.yml @@ -1,5 +1,5 @@ --- -- import_playbook: kubernetes-prepare.yml +- import_playbook: kubernetes-cluster-layout.yml - name: prepare variables and do some sanity checks hosts: _kubernetes_nodes_ diff --git a/inventory/group_vars/k8s-test/main.yml b/inventory/group_vars/k8s-test/main.yml index a4aeff04..e1b6570f 100644 --- a/inventory/group_vars/k8s-test/main.yml +++ b/inventory/group_vars/k8s-test/main.yml @@ -3,9 +3,6 @@ kubernetes_version: 1.16.4 kubernetes_container_runtime: containerd kubernetes_network_plugin: kubeguard -kubernetes_masters: - - s2-k8s-test0 - kubernetes: cluster_name: k8s-test @@ -17,7 +14,6 @@ kubernetes: pod_ip_range_size: 24 service_ip_range: 172.18.192.0/18 - # kubernetes_secrets: # encryption_config_keys: "{{ vault_kubernetes_encryption_config_keys }}" diff --git a/spreadspace/k8s-test.yml b/spreadspace/k8s-test.yml index 83f19ced..27599556 100644 --- a/spreadspace/k8s-test.yml +++ b/spreadspace/k8s-test.yml @@ -8,4 +8,7 @@ - import_playbook: ../common/kubernetes.yml vars: - kubernetes_nodes_group: k8s-test + kubernetes_cluster_layout: + nodes_group: k8s-test + masters: + - s2-k8s-test0 -- cgit v1.2.3