summaryrefslogtreecommitdiff
path: root/common/kubernetes-cluster-layout.yml
diff options
context:
space:
mode:
Diffstat (limited to 'common/kubernetes-cluster-layout.yml')
-rw-r--r--common/kubernetes-cluster-layout.yml46
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