--- - name: "Check vars defined correctly" assert: that: - "calico_pool_name is defined" - "calico_pool_name is match('^[a-zA-Z0-9-_\\\\.]{2,63}$')" msg: "calico_pool_name contains invalid characters" - name: "Check calico network backend defined correctly" assert: that: - "calico_network_backend in ['bird', 'vxlan', 'none']" msg: "calico network backend is not 'bird', 'vxlan' or 'none'" when: - calico_network_backend is defined - name: "Check ipip and vxlan mode defined correctly" assert: that: - "calico_ipip_mode in ['Always', 'CrossSubnet', 'Never']" - "calico_vxlan_mode in ['Always', 'CrossSubnet', 'Never']" msg: "calico inter host encapsulation mode is not 'Always', 'CrossSubnet' or 'Never'" - name: "Check ipip and vxlan mode if simultaneously enabled" assert: that: - "calico_vxlan_mode in ['Never']" msg: "IP in IP and VXLAN mode is mutualy exclusive modes" when: - "calico_ipip_mode in ['Always', 'CrossSubnet']" - name: "Check ipip and vxlan mode if simultaneously enabled" assert: that: - "calico_ipip_mode in ['Never']" msg: "IP in IP and VXLAN mode is mutualy exclusive modes" when: - "calico_vxlan_mode in ['Always', 'CrossSubnet']" - name: "Get current version of calico cluster version" shell: "{{ bin_dir }}/calicoctl.sh version | grep 'Cluster Version:' | awk '{ print $3}'" register: calico_version_on_server run_once: yes changed_when: false - name: "Determine if calico upgrade is needed" block: - name: "Check that calico version is enough for upgrade" assert: that: - calico_version_on_server.stdout is version('v2.6.5', '>=') msg: "Your version of calico is not fresh enough for upgrade" when: calico_upgrade_enabled - name: "Set upgrade flag when version needs to be updated" set_fact: calico_upgrade_needed: True when: - calico_version_on_server.stdout is version('v2.6.5', '>=') - calico_version_on_server.stdout is version('v3.0.0', '<') when: - calico_version_on_server.stdout is defined - calico_version_on_server.stdout - inventory_hostname == groups['kube-master'][0] run_once: yes