--- - name: install kubeadm and kubectl apt: name: - "kubeadm{% if kubernetes.pkg_version is defined %}={{ kubernetes.pkg_version }}{% endif %}" - "kubectl{% if kubernetes.pkg_version is defined %}={{ kubernetes.pkg_version }}{% endif %}" state: present - name: disable automatic upgrades for kubeadm and kubectl when: kubernetes.pkg_version is defined loop: - kubeadm - kubectl dpkg_selections: name: "{{ item }}" selection: hold - name: set kubelet node-ip lineinfile: name: "/etc/default/kubelet" regexp: '^KUBELET_EXTRA_ARGS=' line: 'KUBELET_EXTRA_ARGS=--node-ip={{ kubernetes.pod_ip_range | ipsubnet(kubernetes.pod_ip_range_size, kubernetes.net_index[inventory_hostname]) | ipaddr(1) | ipaddr("address") }}' - name: add kubectl/kubeadm completion for shells loop: - zsh - bash blockinfile: path: "/root/.{{ item }}rc" create: yes marker: "### {mark} ANSIBLE MANAGED BLOCK for kubectl ###" content: | source <(kubectl completion {{ item }}) source <(kubeadm completion {{ item }})