Deploy multiple clusters in one time
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Adrien Reslinger 2021-02-06 15:22:17 +01:00
parent 7f36b6eae6
commit 2ce6678959
Signed by: adrien
GPG key ID: DA7B27055C66D6DE
2 changed files with 43 additions and 32 deletions

View file

@ -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

View file

@ -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