Make some work

This commit is contained in:
Adrien Reslinger 2019-07-15 19:32:53 +02:00
parent 799dd340ea
commit b37e69c7bc
4 changed files with 89 additions and 54 deletions

View file

@ -1,3 +1,4 @@
---
kubernetes_cri: "containerd"
kubernetes_server: false
kubernetes_version: 1.15.0

View file

@ -28,16 +28,22 @@
owner: root
mode: 0644
register: need_firewalld_reload
when:
- kubernetes_server == true
#- name: Reload firewalld configuration
# service:
# name: firewalld
# state: reloaded
# enabled: yes
# when:
# - kubernetes_server == true
- name: reload firewalld to refresh service list
command: firewall-cmd --reload
when:
- need_firewalld_reload is changed
- kubernetes_server == true
# Définir interface
#- name: Open Firewalld
@ -49,3 +55,4 @@
# when:
# - need_firewall == true
# - firewall_name == "firewalld"
# - kubernetes_server == true

View file

@ -39,33 +39,15 @@
- "sysconfig/kubelet"
- 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
service:
name: kubelet
state: started
enabled: yes
# 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)
- kubernetes_master == true
- groups['KubernetesMaster'] | length > 1
- stat: path=/etc/kubernetes/admin.conf
@ -77,21 +59,54 @@
when:
- st.stat.exists
- name: Retreive kubeadm Major version
shell: kubeadm version | sed 's/.*{Major:"\([0-9]\)".*/\1/'
register: kubeadm_version_major
- name: Retreive kubeadm Minor version
shell: kubeadm version | sed -e 's/.* Minor:"\([0-9]*\)".*/\1/'
register: kubeadm_version_minor
- name: Deploy kubeadm config
template:
src: kubeadmin-config.yaml.j2
dest: /root/kubeadmin-config.yaml
owner: root
group: root
mode: 600
when:
- groups['KubernetesMasterConfigured'] is not defined
- groups['KubernetesMasters'][0] == ansible_hostname
- kubeadm_version_major.rc == 1
- kubeadm_version_minor.rc > 15
- name: Init Kubernetes on {{ groups['KubernetesMasters'][0] }}
command: kubeadm init --config=kubeadm-config.yaml --upload-certs --apiserver-advertise-address={{ ansible_host }} --ignore-preflight-errors=SystemVerification
when:
- groups['KubernetesMasterConfigured'] is not defined
- groups['KubernetesMasters'][0] == ansible_hostname
- kubeadm_version_major.rc == 1
- kubeadm_version_minor.rc > 15
- name: Create KubernetesMasterConfigured group
group_by: key=KubernetesMasterConfigured
when:
- groups['KubernetesMasterConfigured'] is not defined
- groups['KubernetesMasters'][0] == ansible_hostname
- 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
- name: Check if a node is still tainted
command: kubectl get nodes '{{ ansible_host }}' -o jsonpath='{.spec.taints}'
when: kubernetes_master_taint
register: current_taint
- name: taint the machine if needed
command: kubectl taint nodes --all node-role.kubernetes.io/master-
when: kubernetes_master_taint == true and current_taint.stdout
#
# At this point, we have a kubernetes up and running, but ready for it

View file

@ -2,35 +2,47 @@
- name: Include vars for {{ ansible_os_family }}
include_vars: "{{ ansible_os_family }}.yml"
- set_fact:
kubernetes_server: true
kubernetes_master: true
kubernetes_master_taint: false
when:
- "'KubernetesMasters' in group_names"
- "'KubernetesNodes' not in group_names"
- set_fact:
kubernetes_server: true
kubernetes_master: false
kubernetes_master_taint: false
when:
- "'KubernetesNodes' in group_names"
- "'KubernetesMasters' not in group_names"
- set_fact:
kubernetes_server: true
kubernetes_master: true
kubernetes_master_taint: true
when:
- "'KubernetesNodes' in group_names"
- "'KubernetesMasters' in group_names"
- set_fact:
krubernetes_sever: false
when:
- "'KubernetesMasters' not in group_names"
- "'KubernetesNodes' not in group_names"
- name: Install kubernetes rules for {{ ansible_os_family }} OS family
include_tasks: "{{ ansible_os_family }}.yml"
- name: Install kubernetes tools
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"
# notify: Restart kubelet
- name: Include kubernetes server rules
include_tasks: "install_server.yml"
when:
- kubernetes_server is true
- kubernetes_server == true
#- name: Install python library for docker
# package: name="{{ python_openshift_lib }}" state=latest update_cache=yes