# Copyright (c) 2022 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

- hosts: controllers[0]
  gather_facts: false
  become: true
  roles:
    - role: cilium
      tags:
        - cilium

- hosts: controllers
  gather_facts: false
  become: true
  roles:
    - role: flux
      tags:
        - flux

- hosts: controllers[0]
  gather_facts: false
  become: true
  roles:
    - role: csi
      tags:
        - csi

    - role: cert_manager
      tags:
        - cert-manager

    - role: ingress_nginx
      tags:
        - ingress-nginx

    - role: rabbitmq_cluster_operator
      tags:
        - rabbitmq-cluster-operator

    - role: percona_xtradb_cluster_operator
      tags:
        - percona-xtradb-cluster-operator

    - role: percona_xtradb_cluster
      tags:
        - percona-xtradb-cluster

    - role: node_feature_discovery
      tags:
        - node-feature-discovery

    - role: kube_prometheus_stack
      tags:
        - kube-prometheus-stack

    - role: prometheus_ethtool_exporter
      tags:
        - prometheus-ethtool-exporter

    - role: ipmi_exporter
      tags:
        - ipmi-exporter

    - role: prometheus_pushgateway
      tags:
        - prometheus-pushgateway

    - role: keepalived
      tags:
        - keepalived

    - role: memcached
      tags:
        - memcached

    - role: openstack_helm_keystone
      tags:
        - openstack-helm-keystone

    - role: openstack_helm_barbican
      tags:
        - openstack-helm-barbican

    - role: openstack_helm_infra_ceph_provisioners
      when: atmosphere_ceph_enabled | default(true)
      tags:
        - openstack-helm-infra-ceph-provisioners

    - role: openstack_helm_glance
      tags:
        - openstack-helm-glance

    - role: openstack_helm_cinder
      tags:
        - openstack-helm-cinder

    - role: openstack_helm_placement
      tags:
        - openstack-helm-placement


    - role: openstack_helm_infra_openvswitch
      tags:
        - openstack-helm-infra-openvswitch

    - role: openstack_helm_infra_libvirt
      tags:
        - openstack-helm-infra-libvirt

    - role: coredns
      tags:
        - coredns

    - role: openstack_helm_neutron
      tags:
        - openstack-helm-neutron

    - role: openstack_helm_nova
      tags:
        - openstack-helm-nova

    - role: openstack_helm_senlin
      tags:
        - openstack-helm-senlin

    # NOTE(mnaser): This is disabled out of the box until we have a native way
    #               of configuring it with a pre-configured backend out of the
    #               box.
    # - role: openstack_helm_designate
    #   tags:
    #     - openstack-helm-designate

    - role: openstack_helm_heat
      tags:
        - openstack-helm-heat

    - role: openstack_helm_octavia
      tags:
        - openstack-helm-octavia

    - role: openstack_helm_magnum
      tags:
        - openstack-helm-magnum

    - role: openstack_helm_horizon
      tags:
        - openstack-helm-horizon

    - role: openstack_exporter
      tags:
        - openstack-exporter

- hosts: controllers
  become: true
  gather_facts: false
  roles:
    - role: openstack_cli
      tags:
        - openstack-cli
