diff options
author | Christian Pointner <equinox@spreadspace.org> | 2020-02-01 02:48:06 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2020-02-01 02:48:06 +0100 |
commit | 844bc9826f652d6bebe55c66e44eb69bd89575bf (patch) | |
tree | 5c60fe1648e5a1db4b54c4ce02e72c4cf0bd8939 /common/kubernetes-cluster-layout.yml | |
parent | updated all nexcloud instances on sk-cloudia (diff) | |
parent | kubernetes standalone with docker (diff) |
Merge branch 'topic/kubernetes-ng'
Diffstat (limited to 'common/kubernetes-cluster-layout.yml')
-rw-r--r-- | common/kubernetes-cluster-layout.yml | 46 |
1 files changed, 46 insertions, 0 deletions
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 |