--- - name: set var set_fact: k8s_controlplane_host: "{{ hostvars[inventory_hostname]['groups']['primary_master_node'][0] }}" run_once: true when: - k8s_controlplane_host | default('') | length == 0 - name: Assert k8s_controlplane_host fail: msg: "k8s_controlplane_host is not defined. " when: - k8s_controlplane_host | default('') | length == 0 - name: set k8s cmdline env set_fact: k8s_or_k3s: "k8s" K3S_CMDLINE_PREFIX: '' ENV_KUBECONFIG: '/etc/kubernetes/admin.conf' - name: set k3s cmdline env set_fact: k8s_or_k3s : "k3s" K3S_CMDLINE_PREFIX: '/usr/local/bin/k3s' ENV_KUBECONFIG: "{{ '~/.kube/config' | expanduser }}" when: - env_k8s_or_k3s | default('k8s') == 'k3s' - block: - name: stat k3s bin stat: path: /usr/local/bin/k3s register: k3s_bin delegate_to: "{{ k8s_controlplane_host }}" - name: stat k3s config stat: path: /root/.kube/config register: k3s_config delegate_to: "{{ k8s_controlplane_host }}" - name: set k3s var set_fact: k8s_or_k3s: "k3s" K3S_CMDLINE_PREFIX: 'k3s' ENV_KUBECONFIG: "{{ '~/.kube/config' | expanduser }}" when: - k3s_bin.stat.exists | default(false) == true - k3s_config.stat.exists | default(false) == true when: - env_k8s_or_k3s | default('') == 'k8s' - debug: var=ENV_KUBECONFIG - debug: var=K3S_CMDLINE_PREFIX - block: - name: Set Onecloud Version If Not Defined environment: KUBECONFIG: "{{ ENV_KUBECONFIG }}" shell: | {{ K3S_CMDLINE_PREFIX }} kubectl -n onecloud get onecloudclusters default -o=jsonpath='{.spec.version}' register: k8s_oc_ver delegate_to: "{{ k8s_controlplane_host }}" run_once: true become: true - name: Set K8s Version set_fact: onecloud_version: "{{ k8s_oc_ver.stdout }}" when: - k8s_oc_ver.rc == 0 when: - onecloud_version is not defined - name: Assert Onecloud Version fail: msg: "onecloud_version is not defined. " when: - onecloud_version | default('') | length == 0 - name: set var for master set_fact: onecloud_version_abbr: "master" when: - onecloud_version is defined - onecloud_version | regex_search('^master-[-0-9.]+') - name: set var for non master set_fact: onecloud_version_abbr: "{{ onecloud_version | regex_replace('[^0-9.]+') | regex_findall('^[0-9]+\\.[0-9]+') | join('')}}" when: - onecloud_version is defined - onecloud_version | regex_search('v[0-9][-0-9.]+') - debug: var=onecloud_version_abbr - name: gather os specific variables "{{ ansible_distribution }} {{ ansible_distribution_major_version }} {{ ansible_architecture }}" include_vars: "{{ item }}" with_first_found: - files: - "{{ ansible_distribution | regex_replace('[^a-zA-Z0-9 ]+|[ ]+$', '') |replace(' ','_') | lower}}-{{ansible_distribution_release}}.yml" - "{{ ansible_distribution | regex_replace('[^a-zA-Z0-9 ]+|[ ]+$', '') |replace(' ','_') | lower}}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.{{ ansible_architecture }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_release|lower }}-{{ ansible_architecture }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_release|lower }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}-{{ ansible_architecture }}.yml" - "{{ ansible_distribution|lower | replace(' ', '_') }}.yml" - "{{ ansible_os_family|lower }}-{{ ansible_architecture }}.yml" - "{{ ansible_os_family|lower }}.yml" - defaults.yml paths: - ../vars tags: - facts - name: gather var for latest packages include_vars: "../vars/latest_packages.yml" when: - latest_packages is not defined - name: gather var for containerd packages include_vars: "../vars/containerd_packages.yml" when: - containerd_packages is not defined - 'enable_containerd|default(false) == true' - name: gather var for qemu 10.x packages include_vars: "../vars/qemu_10_packages.yml" when: - qemu_10_packages is not defined - (onecloud_version is version('v4.0', '>=') and upgrade_onecloud_version is not defined) or (upgrade_onecloud_version is defined and upgrade_onecloud_version is version('v4.0', '>=')) - name: gather var for win11 packages include_vars: "../vars/win11_packages.yml" when: - win11_packages is not defined - ansible_architecture == 'x86_64' - (onecloud_version is version('v4.0', '>=') and upgrade_onecloud_version is not defined) or (upgrade_onecloud_version is defined and upgrade_onecloud_version is version('v4.0', '>=')) - name: Append K8s packages if needed set_fact: common_packages: "{{ common_packages + k8s_packages + ['yunion-ocadm'] }}" when: - k8s_packages is defined - k8s_or_k3s | default('k8s') == 'k8s' - name: Append containerd packages if needed set_fact: common_packages: "{{ common_packages + containerd_packages }}" when: - containerd_packages is defined - 'enable_containerd|default(false) == true' - name: Update latest packages for CE set_fact: latest_packages: "{{ latest_packages | select('match', '^(?!.*climc-ee.*$).*') | list }}" when: - use_ee|default(false)|bool == false # false: CE - name: Lookup offline data path ansible.builtin.set_fact: offline_data_path: "{{ lookup('env', 'OFFLINE_DATA_PATH') }}" - name: Set offline data path var ansible.builtin.set_fact: offline_data_path: "{{ offline_data_path | default(offline_data_path_var) }}" - name: Set online status ansible.builtin.set_fact: online_status: "{% if offline_data_path and offline_data_path != '' %}offline{% else %}online{% endif %}" - name: Set offline deploy ansible.builtin.set_fact: offline_deploy: "{% if offline_data_path and offline_data_path != '' %}true{% else %}false{% endif %}" - name: Check if /usr/bin/python3 exists stat: path: /usr/bin/python3 register: python3_stat - name: Set python interpreter set_fact: ansible_python_interpreter: "/usr/bin/python3" when: python3_stat.stat.exists - debug: var=online_status - name: set default fact is_running_on_vm set_fact: is_running_on_vm: false - name: detect if running on VM set_fact: is_running_on_vm: true when: - ansible_virtualization_type is defined - ansible_virtualization_type != '' - ansible_virtualization_type != 'NA' - ansible_virtualization_role | default("") != "host" - name: join as host condition set_fact: join_as_host: false - name: vm node join as host agent set_fact: join_as_host: true when: - k8s_node_as_oc_host|default(false)|bool == true - k8s_node_as_oc_host_on_vm | default(false)|bool == true - is_running_on_vm | default(false)|bool == true - name: physical node join as host agent set_fact: join_as_host: true when: - k8s_node_as_oc_host|default(false)|bool == true - is_running_on_vm | default(false)|bool == false - name: disable telegraf for host service include_role: name: utils/disable-telegraf-service when: - join_as_host | default(false)|bool == true - name: Unmount /tmp if mounted shell: | mount | grep 'tmpfs on /tmp' && umount -l /tmp || : become: yes args: executable: /bin/bash