2015-10-04 04:19:50 +08:00
|
|
|
---
|
2018-01-29 19:37:48 +08:00
|
|
|
- import_tasks: facts.yml
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- facts
|
2016-12-13 18:43:06 +08:00
|
|
|
|
2018-01-29 19:37:48 +08:00
|
|
|
- import_tasks: pre_upgrade.yml
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|
2017-04-03 21:50:17 +08:00
|
|
|
|
2017-04-20 00:00:44 +08:00
|
|
|
- name: Ensure /var/lib/cni exists
|
|
|
|
file:
|
|
|
|
path: /var/lib/cni
|
|
|
|
state: directory
|
|
|
|
mode: 0755
|
|
|
|
|
2018-01-29 19:37:48 +08:00
|
|
|
- import_tasks: install.yml
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|
2016-02-12 06:08:16 +08:00
|
|
|
|
2018-01-29 19:37:48 +08:00
|
|
|
- import_tasks: nginx-proxy.yml
|
2017-11-24 00:15:48 +08:00
|
|
|
when: is_kube_master == false and loadbalancer_apiserver_localhost
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- nginx
|
2016-09-28 19:05:08 +08:00
|
|
|
|
2017-09-14 02:00:51 +08:00
|
|
|
- name: Write kubelet config file (non-kubeadm)
|
2017-02-18 05:22:34 +08:00
|
|
|
template:
|
2017-09-14 02:00:51 +08:00
|
|
|
src: kubelet.standard.env.j2
|
2017-02-18 05:22:34 +08:00
|
|
|
dest: "{{ kube_config_dir }}/kubelet.env"
|
|
|
|
backup: yes
|
2017-09-14 02:00:51 +08:00
|
|
|
when: not kubeadm_enabled
|
2016-12-08 21:36:00 +08:00
|
|
|
notify: restart kubelet
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|
2015-12-11 18:32:13 +08:00
|
|
|
|
2018-09-17 01:40:20 +08:00
|
|
|
- name: Make sure dynamic kubelet configuration directory is writeable
|
|
|
|
file:
|
|
|
|
path: "{{ dynamic_kubelet_configuration_dir }}"
|
|
|
|
mode: 0600
|
|
|
|
state: directory
|
|
|
|
when: dynamic_kubelet_configuration
|
|
|
|
|
2017-09-14 02:00:51 +08:00
|
|
|
- name: Write kubelet config file (kubeadm)
|
|
|
|
template:
|
|
|
|
src: kubelet.kubeadm.env.j2
|
|
|
|
dest: "{{ kube_config_dir }}/kubelet.env"
|
|
|
|
backup: yes
|
|
|
|
when: kubeadm_enabled
|
|
|
|
notify: restart kubelet
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|
|
|
|
- kubeadm
|
2017-09-14 02:00:51 +08:00
|
|
|
|
2015-12-11 18:32:13 +08:00
|
|
|
- name: write the kubecfg (auth) file for kubelet
|
2017-02-18 05:22:34 +08:00
|
|
|
template:
|
2017-06-27 12:27:25 +08:00
|
|
|
src: "{{ item }}-kubeconfig.yaml.j2"
|
|
|
|
dest: "{{ kube_config_dir }}/{{ item }}-kubeconfig.yaml"
|
2017-02-18 05:22:34 +08:00
|
|
|
backup: yes
|
2017-06-27 12:27:25 +08:00
|
|
|
with_items:
|
|
|
|
- node
|
|
|
|
- kube-proxy
|
2017-09-14 02:00:51 +08:00
|
|
|
when: not kubeadm_enabled
|
2016-12-08 21:36:00 +08:00
|
|
|
notify: restart kubelet
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|
2015-12-11 18:32:13 +08:00
|
|
|
|
2017-02-03 23:26:30 +08:00
|
|
|
- name: Ensure nodePort range is reserved
|
|
|
|
sysctl:
|
|
|
|
name: net.ipv4.ip_local_reserved_ports
|
|
|
|
value: "{{ kube_apiserver_node_port_range }}"
|
|
|
|
sysctl_set: yes
|
2018-04-27 23:50:58 +08:00
|
|
|
sysctl_file: "{{ sysctl_file_path }}"
|
2017-02-03 23:26:30 +08:00
|
|
|
state: present
|
|
|
|
reload: yes
|
|
|
|
when: kube_apiserver_node_port_range is defined
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kube-proxy
|
2017-02-03 23:26:30 +08:00
|
|
|
|
2017-09-06 20:11:51 +08:00
|
|
|
- name: Verify if br_netfilter module exists
|
|
|
|
shell: "modinfo br_netfilter"
|
2018-06-13 02:30:18 +08:00
|
|
|
environment:
|
|
|
|
PATH: "{{ ansible_env.PATH}}:/sbin" # Make sure we can workaround RH's conservative path management
|
2017-09-06 20:11:51 +08:00
|
|
|
register: modinfo_br_netfilter
|
|
|
|
failed_when: modinfo_br_netfilter.rc not in [0, 1]
|
|
|
|
changed_when: false
|
|
|
|
|
|
|
|
- name: Enable br_netfilter module
|
|
|
|
modprobe:
|
|
|
|
name: br_netfilter
|
|
|
|
state: present
|
|
|
|
when: modinfo_br_netfilter.rc == 0
|
|
|
|
|
2017-10-13 17:50:29 +08:00
|
|
|
- name: Persist br_netfilter module
|
|
|
|
copy:
|
|
|
|
dest: /etc/modules-load.d/kubespray-br_netfilter.conf
|
|
|
|
content: br_netfilter
|
|
|
|
when: modinfo_br_netfilter.rc == 0
|
|
|
|
|
2017-09-06 20:11:51 +08:00
|
|
|
# kube-proxy needs net.bridge.bridge-nf-call-iptables enabled when found if br_netfilter is not a module
|
|
|
|
- name: Check if bridge-nf-call-iptables key exists
|
|
|
|
command: "sysctl net.bridge.bridge-nf-call-iptables"
|
|
|
|
failed_when: false
|
|
|
|
changed_when: false
|
|
|
|
register: sysctl_bridge_nf_call_iptables
|
|
|
|
|
|
|
|
- name: Enable bridge-nf-call tables
|
|
|
|
sysctl:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: present
|
2018-04-27 23:50:58 +08:00
|
|
|
sysctl_file: "{{ sysctl_file_path }}"
|
2017-09-06 20:11:51 +08:00
|
|
|
value: 1
|
|
|
|
reload: yes
|
2017-12-13 01:09:27 +08:00
|
|
|
when: sysctl_bridge_nf_call_iptables.rc == 0
|
2017-09-06 20:11:51 +08:00
|
|
|
with_items:
|
|
|
|
- net.bridge.bridge-nf-call-iptables
|
|
|
|
- net.bridge.bridge-nf-call-arptables
|
|
|
|
- net.bridge.bridge-nf-call-ip6tables
|
|
|
|
|
2018-01-29 13:15:32 +08:00
|
|
|
- name: Modprode Kernel Module for IPVS
|
|
|
|
modprobe:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: present
|
|
|
|
with_items:
|
|
|
|
- ip_vs
|
|
|
|
- ip_vs_rr
|
|
|
|
- ip_vs_wrr
|
|
|
|
- ip_vs_sh
|
|
|
|
- nf_conntrack_ipv4
|
2018-08-14 20:13:44 +08:00
|
|
|
when: kube_proxy_mode == 'ipvs'
|
2018-01-29 13:15:32 +08:00
|
|
|
tags:
|
|
|
|
- kube-proxy
|
|
|
|
|
2018-04-04 18:18:51 +08:00
|
|
|
- name: Persist ip_vs modules
|
|
|
|
copy:
|
|
|
|
dest: /etc/modules-load.d/kube_proxy-ipvs.conf
|
2018-04-04 23:05:27 +08:00
|
|
|
content: |
|
|
|
|
ip_vs
|
|
|
|
ip_vs_rr
|
|
|
|
ip_vs_wrr
|
|
|
|
ip_vs_sh
|
|
|
|
nf_conntrack_ipv4
|
2018-04-04 18:18:51 +08:00
|
|
|
when: kube_proxy_mode == 'ipvs'
|
|
|
|
tags:
|
|
|
|
- kube-proxy
|
|
|
|
|
2015-12-11 18:32:13 +08:00
|
|
|
- name: Write proxy manifest
|
2016-01-25 09:01:25 +08:00
|
|
|
template:
|
2015-12-11 18:32:13 +08:00
|
|
|
src: manifests/kube-proxy.manifest.j2
|
|
|
|
dest: "{{ kube_manifest_dir }}/kube-proxy.manifest"
|
2017-09-14 02:00:51 +08:00
|
|
|
when: not kubeadm_enabled
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kube-proxy
|
2015-12-11 18:32:13 +08:00
|
|
|
|
2017-09-26 17:38:58 +08:00
|
|
|
- name: Purge proxy manifest for kubeadm
|
|
|
|
file:
|
|
|
|
path: "{{ kube_manifest_dir }}/kube-proxy.manifest"
|
|
|
|
state: absent
|
|
|
|
when: kubeadm_enabled
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kube-proxy
|
2017-09-26 17:38:58 +08:00
|
|
|
|
2018-03-31 08:24:57 +08:00
|
|
|
- include_tasks: "{{ cloud_provider }}-credential-check.yml"
|
|
|
|
when:
|
|
|
|
- cloud_provider is defined
|
|
|
|
- cloud_provider in [ 'openstack', 'azure', 'vsphere' ]
|
|
|
|
tags:
|
|
|
|
- cloud-provider
|
|
|
|
- facts
|
|
|
|
|
2018-08-17 11:31:21 +08:00
|
|
|
- name: Write cacert file
|
|
|
|
copy:
|
|
|
|
src: "{{ openstack_cacert }}"
|
|
|
|
dest: "{{ kube_config_dir }}/openstack-cacert.pem"
|
|
|
|
group: "{{ kube_cert_group }}"
|
|
|
|
mode: 0640
|
|
|
|
when:
|
|
|
|
- inventory_hostname in groups['k8s-cluster']
|
|
|
|
- cloud_provider is defined
|
2018-09-06 19:05:50 +08:00
|
|
|
- cloud_provider == 'openstack'
|
2018-08-17 11:31:21 +08:00
|
|
|
- openstack_cacert is defined
|
2018-09-10 23:43:35 +08:00
|
|
|
- openstack_cacert != ""
|
2018-08-17 11:31:21 +08:00
|
|
|
tags:
|
|
|
|
- cloud-provider
|
|
|
|
|
2018-03-28 21:26:36 +08:00
|
|
|
- name: Write cloud-config
|
|
|
|
template:
|
|
|
|
src: "{{ cloud_provider }}-cloud-config.j2"
|
|
|
|
dest: "{{ kube_config_dir }}/cloud_config"
|
|
|
|
group: "{{ kube_cert_group }}"
|
|
|
|
mode: 0640
|
|
|
|
when:
|
|
|
|
- cloud_provider is defined
|
2018-09-20 22:31:28 +08:00
|
|
|
- cloud_provider in [ 'openstack', 'azure', 'vsphere', 'aws' ]
|
2018-03-28 21:26:36 +08:00
|
|
|
notify: restart kubelet
|
|
|
|
tags:
|
|
|
|
- cloud-provider
|
|
|
|
|
2016-01-25 09:01:25 +08:00
|
|
|
# reload-systemd
|
|
|
|
- meta: flush_handlers
|
|
|
|
|
2015-12-11 18:32:13 +08:00
|
|
|
- name: Enable kubelet
|
|
|
|
service:
|
|
|
|
name: kubelet
|
|
|
|
enabled: yes
|
|
|
|
state: started
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- kubelet
|