# [optional] to synchronize time of nodes with 'chrony' - hosts: all roles: - { role: chrony, when: "hostvars[groups.deploy[0]]['NTP_ENABLED'] == 'yes'" } # to create CA, kubeconfig, kube-proxy.kubeconfig etc. on 'deploy' node - hosts: deploy roles: - deploy # prepare tasks for all nodes - hosts: - kube-master - kube-node - deploy - etcd - lb roles: - prepare # [optional] to install loadbalance service, only needed by multi-master cluster - hosts: lb roles: - lb # to install etcd cluster - hosts: etcd roles: - etcd # to install container runtime - hosts: - kube-master - kube-node roles: - { role: docker, when: "CONTAINER_RUNTIME == 'docker'" } - { role: containerd, when: "CONTAINER_RUNTIME == 'containerd'" } # to set up 'kube-master' nodes - hosts: kube-master roles: - kube-master - kube-node # tasks: - name: Making master nodes SchedulingDisabled shell: "{{ bin_dir }}/kubectl cordon {{ inventory_hostname }} " delegate_to: "{{ groups.deploy[0] }}" when: DEPLOY_MODE != "allinone" ignore_errors: true - name: Setting master role name shell: "{{ bin_dir }}/kubectl label node {{ inventory_hostname }} kubernetes.io/role=master --overwrite" ignore_errors: true delegate_to: "{{ groups.deploy[0] }}" # to set up 'kube-node' nodes - hosts: kube-node roles: - { role: kube-node, when: "DEPLOY_MODE != 'allinone'" } # to install network plugin, only one can be choosen - hosts: - kube-master - kube-node roles: - { role: calico, when: "CLUSTER_NETWORK == 'calico'" } - { role: cilium, when: "CLUSTER_NETWORK == 'cilium'" } - { role: flannel, when: "CLUSTER_NETWORK == 'flannel'" } - { role: kube-router, when: "CLUSTER_NETWORK == 'kube-router'" } - { role: kube-ovn, when: "CLUSTER_NETWORK == 'kube-ovn'" } # to install cluster-addons - hosts: - kube-node roles: - cluster-addon