--- - name: Stop if ansible version is too low assert: that: - ansible_version.full|version_compare('2.3.0.0', '>=') run_once: yes - name: Stop if non systemd OS type assert: that: ansible_service_mgr == "systemd" ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if unknown OS assert: that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'CoreOS', 'Container Linux by CoreOS'] ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if unknown network plugin assert: that: network_plugin in ['calico', 'canal', 'flannel', 'weave', 'cloud'] when: network_plugin is defined ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if incompatible network plugin and cloudprovider assert: that: network_plugin != calico when: cloud_provider is defined and cloud_provider == 'azure' ignore_errors: "{{ ignore_assert_errors }}" - name: "Stop if known booleans are set as strings (Use JSON format on CLI: -e \"{'key': true }\")" assert: that: item|type_debug == 'bool' run_once: yes with_items: - kubeadm_enabled - download_run_once - deploy_netchecker - download_always_pull - efk_enabled - helm_enabled - openstack_lbaas_Enabled - rbac_enabled ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if even number of etcd hosts assert: that: groups.etcd|length is not divisibleby 2 ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if memory is too small for masters assert: that: ansible_memtotal_mb >= 1500 ignore_errors: "{{ ignore_assert_errors }}" when: inventory_hostname in groups['kube-master'] - name: Stop if memory is too small for nodes assert: that: ansible_memtotal_mb >= 1024 ignore_errors: "{{ ignore_assert_errors }}" when: inventory_hostname in groups['kube-node'] - name: Stop if ip var does not match local ips assert: that: ip in ansible_all_ipv4_addresses ignore_errors: "{{ ignore_assert_errors }}" when: ip is defined - name: Stop if access_ip is not pingable command: ping -c1 {{ access_ip }} when: access_ip is defined ignore_errors: "{{ ignore_assert_errors }}"