--- - name: Create kubernetes directories file: path: "{{ item }}" state: directory owner: "{{ kube_owner }}" mode: "0755" when: ('k8s_cluster' in group_names) become: true tags: - kubelet - kube-controller-manager - kube-apiserver - bootstrap-os - apps - network - master # master tag is deprecated and replaced by control-plane - control-plane - node with_items: - "{{ kube_config_dir }}" - "{{ kube_manifest_dir }}" - "{{ kube_script_dir }}" - "{{ kubelet_flexvolumes_plugins_dir }}" - name: Create other directories of root owner file: path: "{{ item }}" state: directory owner: root mode: "0755" when: ('k8s_cluster' in group_names) become: true tags: - kubelet - kube-controller-manager - kube-apiserver - bootstrap-os - apps - network - master # master tag is deprecated and replaced by control-plane - control-plane - node with_items: - "{{ kube_cert_dir }}" - "{{ bin_dir }}" - name: Check if kubernetes kubeadm compat cert dir exists stat: path: "{{ kube_cert_compat_dir }}" get_attributes: false get_checksum: false get_mime: false register: kube_cert_compat_dir_check when: - ('k8s_cluster' in group_names) - kube_cert_dir != kube_cert_compat_dir - name: Create kubernetes kubeadm compat cert dir (kubernetes/kubeadm issue 1498) file: src: "{{ kube_cert_dir }}" dest: "{{ kube_cert_compat_dir }}" state: link mode: "0755" when: - ('k8s_cluster' in group_names) - kube_cert_dir != kube_cert_compat_dir - not kube_cert_compat_dir_check.stat.exists - name: Create cni directories file: path: "{{ item }}" state: directory owner: "{{ kube_owner }}" mode: "0755" with_items: - "/etc/cni/net.d" - "/opt/cni/bin" when: - kube_network_plugin in ["calico", "weave", "flannel", "cilium", "kube-ovn", "kube-router", "macvlan"] - ('k8s_cluster' in group_names) tags: - network - cilium - calico - weave - kube-ovn - kube-router - bootstrap-os - name: Create calico cni directories file: path: "{{ item }}" state: directory owner: "{{ kube_owner }}" mode: "0755" with_items: - "/var/lib/calico" when: - kube_network_plugin == "calico" - ('k8s_cluster' in group_names) tags: - network - calico - bootstrap-os - name: Create local volume provisioner directories file: path: "{{ local_volume_provisioner_storage_classes[item].host_dir }}" state: directory owner: root group: root mode: "{{ local_volume_provisioner_directory_mode }}" with_items: "{{ local_volume_provisioner_storage_classes.keys() | list }}" when: - ('k8s_cluster' in group_names) - local_volume_provisioner_enabled tags: - persistent_volumes