---
- name: 'apply setup to {{ host | default("all") }}'
  hosts: '{{ host | default("all") }}'
  serial: "{{ serial_number | default(5) }}"
  strategy: free
  vars:
    ansible_ssh_host: "{{ stage_server_domain }}"
  become: yes

  pre_tasks:
    - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
      assert:
        that:
          - ansible_version.string is version(ansible_minimal_version, ">=")
        msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
      tags:
        - always

    - name: "Import autodiscover pre-tasks"
      import_tasks: tasks/autodiscover_pre_tasks.yml
      become: false
      tags:
        - always

  roles:
    - role: sma_postfix
      when: "'postfix' in group_names"

    - role: keycloak
      when: "'keycloak' in group_names"

    - role: harbor
      when: "'harbor' in group_names"

    - role: prometheus
      when: "'prometheus' in group_names"

    - role: elastic
      when: "'elastic' in group_names"

    - role: logstash
      when: "'logstash' in group_names"

    - role: kibana
      when: "'kibana' in group_names"

    - role: postgres
      when: "'postgres' in group_names"

    - role: pgadmin4
      when: "'pgadmin4' in group_names"

    - role: maria
      when: "'maria' in group_names"

    - role: gitea
      when: "'gitea' in group_names"

    - role: iam
      when: "'iam' in group_names"

    - role: webdav
      when: "'webdav' in group_names"

    - role: management
      when: "'management' in group_names"

    - role: redis
      when: "'redis' in group_names"

    - role: pdns
      when: "'pdns' in group_names"

    - role: backup
      when: "'backup' in group_names"

    - role: backup_minio
      when: "'backup_minio' in group_names"

    - role: keycloak_compact
      when: "'keycloak_compact' in group_names"

    - role: connect_compact
      when: "'connect_compact' in group_names"

# just for certificate updates - do not run without -t update_certs
#    - role: connect
#      when: "'connect' in group_names"
