kubernetesbare-metalk8s-sig-cluster-lifecycleawskubesprayhigh-availabilityansiblekubernetes-clustergce
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.7 KiB
97 lines
3.7 KiB
---
|
|
- name: Stop if any host not in '--limit' does not have a fact cache
|
|
vars:
|
|
uncached_hosts: "{{ hostvars | dict2items | selectattr('value.ansible_default_ipv6', 'undefined') | selectattr('value.ansible_default_ipv4', 'undefined') | map(attribute='key') }}"
|
|
excluded_hosts: "{{ groups['k8s_cluster'] | difference(query('inventory_hostnames', ansible_limit)) }}"
|
|
assert:
|
|
that: uncached_hosts | intersect(excluded_hosts) == []
|
|
fail_msg: |
|
|
Kubespray does not support '--limit' without a populated facts cache for the excluded hosts.
|
|
Please run the facts.yml playbook first without '--limit'.
|
|
The following excluded hosts are not cached: {{ uncached_hosts | intersect(excluded_hosts) }}
|
|
run_once: true
|
|
when:
|
|
- ansible_limit is defined
|
|
- not ignore_assert_errors
|
|
- name: Stop if non systemd OS type
|
|
assert:
|
|
that: ansible_service_mgr == "systemd"
|
|
when: not ignore_assert_errors
|
|
|
|
- name: Stop if the os does not support
|
|
assert:
|
|
that: (allow_unsupported_distribution_setup | default(false)) or ansible_distribution in supported_os_distributions
|
|
msg: "{{ ansible_distribution }} is not a known OS"
|
|
when: not ignore_assert_errors
|
|
|
|
- name: Stop if memory is too small for control plane nodes
|
|
assert:
|
|
that: ansible_memtotal_mb >= minimal_master_memory_mb
|
|
when:
|
|
- not ignore_assert_errors
|
|
- ('kube_control_plane' in group_names)
|
|
|
|
- name: Stop if memory is too small for nodes
|
|
assert:
|
|
that: ansible_memtotal_mb >= minimal_node_memory_mb
|
|
when:
|
|
- not ignore_assert_errors
|
|
- ('kube_node' in group_names)
|
|
|
|
# This command will fail if cgroups are not enabled on the node.
|
|
# For reference: https://kubernetes.io/docs/concepts/architecture/cgroups/#check-cgroup-version
|
|
- name: Stop if cgroups are not enabled on nodes
|
|
command: stat -fc %T /sys/fs/cgroup/
|
|
changed_when: false
|
|
when: not ignore_assert_errors
|
|
|
|
- name: Stop if ip var does not match local ips
|
|
assert:
|
|
that: (ip in ansible_all_ipv4_addresses) or (ip in ansible_all_ipv6_addresses)
|
|
msg: "IPv4: '{{ ansible_all_ipv4_addresses }}' and IPv6: '{{ ansible_all_ipv6_addresses }}' do not contain '{{ ip }}'"
|
|
when:
|
|
- not ignore_assert_errors
|
|
- ip is defined
|
|
|
|
- name: Stop if access_ip is not pingable
|
|
command: ping -c1 {{ main_access_ip }}
|
|
when:
|
|
- main_access_ip is defined
|
|
- not ignore_assert_errors
|
|
- ping_access_ip
|
|
changed_when: false
|
|
|
|
- name: Stop if kernel version is too low for cilium
|
|
assert:
|
|
that: ansible_kernel.split('-')[0] is version('4.9.17', '>=')
|
|
when:
|
|
- kube_network_plugin == 'cilium' or cilium_deploy_additionally
|
|
- not ignore_assert_errors
|
|
|
|
- name: Stop if kernel version is too low for nftables
|
|
assert:
|
|
that: ansible_kernel.split('-')[0] is version('5.13', '>=')
|
|
when:
|
|
- kube_proxy_mode == 'nftables'
|
|
- not ignore_assert_errors
|
|
|
|
- name: Stop if bad hostname
|
|
assert:
|
|
that: inventory_hostname is match("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$")
|
|
msg: "Hostname must consist of lower case alphanumeric characters, '.' or '-', and must start and end with an alphanumeric character"
|
|
when: not ignore_assert_errors
|
|
|
|
- name: Stop if /etc/resolv.conf has no configured nameservers
|
|
assert:
|
|
that: configured_nameservers | length>0
|
|
fail_msg: "nameserver should not be empty in /etc/resolv.conf"
|
|
when:
|
|
- upstream_dns_servers | length == 0
|
|
- not disable_host_nameservers
|
|
- dns_mode in ['coredns', 'coredns_dual']
|
|
|
|
- name: Stop if download_localhost is enabled for Flatcar Container Linux
|
|
assert:
|
|
that: ansible_os_family not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
|
|
msg: "download_run_once not supported for Flatcar Container Linux"
|
|
when: download_run_once or download_force_cache
|