From 2ce6678959565414f95edc3de950ca5af47281d5 Mon Sep 17 00:00:00 2001 From: Adrien Reslinger Date: Sat, 6 Feb 2021 15:22:17 +0100 Subject: [PATCH] Deploy multiple clusters in one time --- tasks/cluster_kubeadm.yml | 49 ++++++++++++++++++--------------------- tasks/install_server.yml | 26 ++++++++++++++++----- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/tasks/cluster_kubeadm.yml b/tasks/cluster_kubeadm.yml index f7e254f..d3afe88 100644 --- a/tasks/cluster_kubeadm.yml +++ b/tasks/cluster_kubeadm.yml @@ -187,7 +187,7 @@ - name: Create KubernetesMasterConfigured group group_by: - key: KubernetesMasterConfigured + key: KubernetesMasterConfigured_{{ kubernetes_cluster_name }} when: - st.stat.exists @@ -209,28 +209,25 @@ # - groups['KubernetesMasters'] | length > 1 changed_when: False -- name: Deploy initial kubeadm config - template: - src: kubeadm-config.yaml.j2 - dest: /root/kubeadm-config.yaml - owner: root - group: root - mode: 0600 - when: - - groups['KubernetesMasterConfigured'] is not defined - - groups['KubernetesMasters'][0] == ansible_hostname +- name: Deploy First controler + block: + - name: Deploy initial kubeadm config + template: + src: kubeadm-config.yaml.j2 + dest: /root/kubeadm-config.yaml + owner: root + group: root + mode: 0600 -- name: Init Kubernetes on {{ groups['KubernetesMasters'][0] }} - command: kubeadm init --config=/root/kubeadm-config.yaml - when: - - groups['KubernetesMasterConfigured'] is not defined - - groups['KubernetesMasters'][0] == ansible_hostname + - name: Init Kubernetes on {{ groups['KubernetesMasters'][0] }} + command: kubeadm init --config=/root/kubeadm-config.yaml + + - name: Add {{ ansible_hostname }} to KubernetesMasterConfigured group + group_by: + key: KubernetesMasterConfigured_{{ kubernetes_cluster_name }} -- name: Add {{ ansible_hostname }} to KubernetesMasterConfigured group - group_by: - key: KubernetesMasterConfigured when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - groups['KubernetesMasters'][0] == ansible_hostname # End of first controler @@ -242,7 +239,7 @@ changed_when: False ignore_errors: yes when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined #- name: Deploy kubeadm config # template: @@ -260,7 +257,7 @@ register: kubernetes_certificateKey delegate_to: "{{ lb_kubemaster }}" when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - server_enrolled.rc == 1 - kubernetes_master|bool @@ -269,7 +266,7 @@ register: kubetoken delegate_to: "{{ lb_kubemaster }}" when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - server_enrolled.rc == 1 - name: Retreive hash certificat @@ -282,7 +279,7 @@ register: cacerthash delegate_to: "{{ lb_kubemaster }}" when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - server_enrolled.rc == 1 - name: Deploy kubeadm config @@ -293,11 +290,11 @@ group: root mode: 0600 when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - server_enrolled.rc == 1 - name: Join '{{ ansible_hostname }}' to Kubernetes cluster command: kubeadm join --config=/root/kubeadm-config.yaml when: - - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasterConfigured_' ~ kubernetes_cluster_name] is not defined - server_enrolled.rc == 1 diff --git a/tasks/install_server.yml b/tasks/install_server.yml index 79ec6c8..89dd6c9 100644 --- a/tasks/install_server.yml +++ b/tasks/install_server.yml @@ -1,4 +1,17 @@ --- +- name: Add master to KubernetesMasters_ClusterName group + group_by: + key: KubernetesMasters_{{ kubernetes_cluster_name }} + when: + - "'KubernetesMasters' in group_names" + +- name: Add node to KubernetesNodes_ClusterName group + group_by: + key: KubernetesNodes_{{ kubernetes_cluster_name }} + when: + - "'KubernetesNodes' in group_names" + + - name: Disable SWAP since kubernetes can't work with swap enabled (1/2) command: swapoff -a changed_when: false @@ -15,11 +28,11 @@ thinpool: kubernetes size: 20g -# Install API loadbalancer -- include_tasks: "load_balancer.yml" - when: - - kubernetes_master|bool - - groups['KubernetesMasters'] | length > 1 +## Install API loadbalancer +#- include_tasks: "load_balancer.yml" +# when: +# - kubernetes_master|bool +# - groups['KubernetesMasters'] | length > 1 - name: Kubernetes cluster with kubeadm include_tasks: "cluster_kubeadm.yml" @@ -82,12 +95,13 @@ - name: Check if a node is still tainted command: kubectl --kubeconfig=/etc/kubernetes/admin.conf get nodes '{{ ansible_hostname | lower }}' -o jsonpath='{.spec.taints}' register: current_taint + check_mode: no when: - kubernetes_master_taint|bool - name: taint the machine if needed # command: kubectl --kubeconfig=/etc/kubernetes/admin.conf taint nodes --all node-role.kubernetes.io/master- - command: kubectl taint nodes '{{ ansible_hostname | lower }}' node-role.kubernetes.io/master- + command: kubectl --kubeconfig=/etc/kubernetes/admin.conf taint nodes '{{ ansible_hostname | lower }}' node-role.kubernetes.io/master- when: - kubernetes_master_taint|bool - current_taint.stdout