diff --git a/tasks/install_server.yml b/tasks/install_server.yml index 8bc9fc9..e8b21ad 100644 --- a/tasks/install_server.yml +++ b/tasks/install_server.yml @@ -13,6 +13,12 @@ # when: # - kubernetes_cri_changed is changed +- name: Remove swapfile from /etc/fstab + mount: + name: swap + fstype: swap + state: absent + - name: Ensuring /etc/systemd/system/kubelet.service.d Folder Exists file: path: "/etc/systemd/system/kubelet.service.d" @@ -34,3 +40,65 @@ - name: Enable kubelet on boot service: name=kubelet state=started enabled=yes + +- stat: path=/etc/kubernetes/admin.conf + register: st + changed_when: False + +- name: Create KubernetesMasterConfigured group + group_by: key=KubernetesMasterConfigured + when: + - st.stat.exists + +- include_tasks: "init_cluster.yml" + when: + - groups['KubernetesMasterConfigured'] is not defined + - groups['KubernetesMasters'][0] == ansible_hostname + +# Install API loadbalancer +- include_tasks: "load_balancer.yml" + when: + - kubernetes_master is true + - groups['KubernetesMaster'] | length > 1 + +# Prepare first master for extend procedure +- include_tasks: "prepare_first_master.yml" + when: + - groups['KubernetesMasterConfigured'][0] == ansible_hostname + - groups['KubernetesMasterConfigured'] | length == 1 # to be tested (potential syntax error) + - groups['KubernetesMaster'] | length > 1 + +- stat: path=/etc/kubernetes/admin.conf + register: st + changed_when: False + +- name: Create KubernetesMasterConfigured group + group_by: key=KubernetesMasterConfigured + when: + - st.stat.exists + +- name: Extend Master services on unconfigured hosts + include_tasks: "add_master.yml" + when: + - groups['KubernetesMaster'] | length > 1 + +#- name: Check if a node is still tainted +# command: kubectl get nodes '{{ ansible_host }}' -o jsonpath='{.spec.taints}' +# when: taint_master +# register: current_taint +# tags: taint +# +#- name: taint the machine if needed +# command: kubectl taint nodes --all node-role.kubernetes.io/master- +# when: taint_master == true and current_taint.stdout +# tags: taint + +# +# At this point, we have a kubernetes up and running, but ready for it +# + +- name: Make /root/.kube directory + file: path="/root/.kube" owner=root group=root mode=0700 state=directory + +- name: Copy certificat file on + copy: src=/etc/kubernetes/admin.conf dest=/root/.kube/config remote_src=yes owner=root group=root mode=0600 diff --git a/tasks/main.yml b/tasks/main.yml index bfd59f0..5b06fc8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -9,8 +9,28 @@ package: name="{{ kubernetes_package_name }}" state=latest update_cache=yes notify: Restart kubelet +- set_fact: + kubernetes_server: true + kubernetes_master: true + when: + - "'KubernetesMasters' in group_names" + +- set_fact: + kubernetes_server: true + kubernetes_master: false + when: + - "'KubernetesMasters' in group_names" + +- set_fact: + kubernetes_server: false + when: + - "'KubernetesMasters' not in group_names" + - "'KubernetesNodes' not in group_names" + - name: Include kubernetes server rules include_tasks: "install_server.yml" + when: + - kubernetes_server is true #- name: Install python library for docker # package: name="{{ python_openshift_lib }}" state=latest update_cache=yes diff --git a/templates/etc/firewalld/services/kubernetes.xml.j2 b/templates/etc/firewalld/services/kubernetes.xml.j2 index 380d893..0e01d78 100644 --- a/templates/etc/firewalld/services/kubernetes.xml.j2 +++ b/templates/etc/firewalld/services/kubernetes.xml.j2 @@ -1,5 +1,6 @@ +{% if kubernetes_master is true %} Kubernetes master Open Kubernetes master ports. @@ -9,4 +10,11 @@ +{% else %} + Kubernetes node + Open Kubernetes node ports. + + + +{% endif %}