diff --git a/roles/kubernetes/node/tasks/main.yml b/roles/kubernetes/node/tasks/main.yml index a6a9c16f263f055f3e987e2b446e437ee8bebdef..324e38867125d99ca88e5f9c731c55d1441900b7 100644 --- a/roles/kubernetes/node/tasks/main.yml +++ b/roles/kubernetes/node/tasks/main.yml @@ -4,6 +4,9 @@ {%- if inventory_hostname in groups['kube-master'] and inventory_hostname not in groups['kube-node'] -%}true{%- else -%}false{%- endif -%} tags: facts +- include: pre_upgrade.yml + tags: kubelet + - include: install.yml tags: kubelet diff --git a/roles/kubernetes/node/tasks/pre_upgrade.yml b/roles/kubernetes/node/tasks/pre_upgrade.yml new file mode 100644 index 0000000000000000000000000000000000000000..612dd3e6fbf587ee964e8b6ef8755ac03908b6e6 --- /dev/null +++ b/roles/kubernetes/node/tasks/pre_upgrade.yml @@ -0,0 +1,6 @@ +--- +- name: "Pre-upgrade | copy /var/lib/cni from kubelet" + command: docker cp kubelet:/var/lib/cni /var/lib/cni + args: + creates: "/var/lib/cni" + failed_when: false diff --git a/roles/kubernetes/node/templates/kubelet-container.j2 b/roles/kubernetes/node/templates/kubelet-container.j2 index ffea01cec3895fce74b52c47a40da17ad85ac0ec..70c317b781973340f6815b6064c28b1c1176a832 100644 --- a/roles/kubernetes/node/templates/kubelet-container.j2 +++ b/roles/kubernetes/node/templates/kubelet-container.j2 @@ -21,6 +21,7 @@ -v {{ docker_daemon_graph }}:/var/lib/docker:rw \ -v /var/log:/var/log:rw \ -v /var/lib/kubelet:/var/lib/kubelet:shared \ + -v /var/lib/cni:/var/lib/cni:shared \ -v /var/run:/var/run:rw \ -v {{kube_config_dir}}:{{kube_config_dir}}:ro \ {{ hyperkube_image_repo }}:{{ hyperkube_image_tag}} \ diff --git a/roles/kubernetes/node/templates/kubelet.rkt.service.j2 b/roles/kubernetes/node/templates/kubelet.rkt.service.j2 index cc5af31ecf6ab7224b43d136c4057f09ff9a29ef..be8a13dbfddbbee5313393fa336547a8d420df5d 100644 --- a/roles/kubernetes/node/templates/kubelet.rkt.service.j2 +++ b/roles/kubernetes/node/templates/kubelet.rkt.service.j2 @@ -34,8 +34,10 @@ ExecStart=/usr/bin/rkt run \ {% if kube_network_plugin in ["calico", "weave", "canal"] %} --volume etc-cni,kind=host,source=/etc/cni,readOnly=true \ --volume opt-cni,kind=host,source=/opt/cni,readOnly=true \ + --volume var-lib-cni,kind=host,source=/var/lib/cni,readOnly=false \ --mount volume=etc-cni,target=/etc/cni \ --mount volume=opt-cni,target=/opt/cni \ + --mount volume=var-lib-cni,target=/var/lib/cni \ {% endif %} --mount volume=dns,target=/etc/resolv.conf \ --mount volume=etc-kubernetes,target={{ kube_config_dir }} \