---
- name: Check ansible version
  import_playbook: ansible_version.yml

# These are inventory compatibility tasks with two purposes:
# - to ensure we keep compatibility with old style group names
# - to reduce inventory boilerplate (defining parent groups / empty groups)

- name: Define groups for legacy less structured inventories
  hosts: all
  gather_facts: false
  tags: always
  tasks:
    - name: Match needed groups by their old names or definition
      vars:
        group_mappings:
          kube_control_plane:
            - kube-master
          kube_node:
            - kube-node
          calico_rr:
            - calico-rr
          no_floating:
            - no-floating
          k8s_cluster:
            - kube_node
            - kube_control_plane
            - calico_rr
      group_by:
        key: "{{ (group_names | intersect(item.value) | length > 0) | ternary(item.key, '_all') }}"
      loop: "{{ group_mappings | dict2items }}"

- name: Check inventory settings
  hosts: all
  gather_facts: false
  tags: always
  roles:
    - validate_inventory

- name: Install bastion ssh config
  hosts: bastion[0]
  gather_facts: false
  environment: "{{ proxy_disable_env }}"
  roles:
    - { role: kubespray_defaults }
    - { role: bastion-ssh-config, tags: ["localhost", "bastion"] }
