# 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.

dependency:
  name: galaxy
driver:
  name: delegated
platforms:
  - name: ctl1
    groups: &controller_groups
      - controllers
      - cephs
      - ceph_mons
      - ceph_mgrs
  - name: ctl2
    groups: *controller_groups
  - name: ctl3
    groups: *controller_groups
  - name: nvme1
    groups: &nvme_groups
      - cephs
      - ceph_osds
  - name: nvme2
    groups: *nvme_groups
  - name: nvme3
    groups: *nvme_groups
  - name: kvm1
    groups: &kvm_groups
      - computes
  - name: kvm2
    groups: *kvm_groups
provisioner:
  name: ansible
  env:
    ANSIBLE_PIPELINING: "True"
  inventory:
    group_vars:
      all:
        atmosphere_image_repository: us-docker.pkg.dev/vexxhost-infra/openstack
        kubernetes_hostname: 10.96.240.10
      controllers:
        kubernetes_keepalived_vrid: 42
        kubernetes_keepalived_interface: ens3
        kubernetes_keepalived_vip: 10.96.240.10
        openstack_helm_endpoints_region_name: RegionOne
        # Memcached
        openstack_helm_endpoints_memcached_secret_key: 7XsFMtMoUT9c8eCqbBNJycqwIepvLYzfOI2kpYhBUJSl2X5RDHiyolaQqQp36nVR
        # RabbitMQ
        openstack_helm_endpoints_rabbitmq_erlang_cookie: openstack-cookie
        openstack_helm_endpoints_rabbitmq_admin_password: password123
        # Keystone
        openstack_helm_endpoints_keystone_api_host: "identity.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_keystone_mariadb_password: keystone-mariadb-password
        openstack_helm_endpoints_keystone_rabbitmq_password: keystone-rabbitmq-password
        openstack_helm_endpoints_keystone_admin_password: keystone-admin-password
        # Glance
        openstack_helm_endpoints_glance_api_host: "image.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_glance_mariadb_password: glance-mariadb-password
        openstack_helm_endpoints_glance_rabbitmq_password: glance-rabbitmq-password
        openstack_helm_endpoints_glance_keystone_password: glance-keystone-password
        # Cinder
        openstack_helm_endpoints_cinder_api_host: "volume.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_cinder_mariadb_password: cinder-mariadb-password
        openstack_helm_endpoints_cinder_rabbitmq_password: cinder-rabbitmq-password
        openstack_helm_endpoints_cinder_keystone_password: cinder-keystone-password
        # Placement
        openstack_helm_endpoints_placement_api_host: "placement.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_placement_keystone_password: placement-keystone-password
        openstack_helm_endpoints_placement_mariadb_password: placement-mariadb-password
        # Neutron
        openstack_helm_endpoints_neutron_api_host: "network.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_neutron_mariadb_password: neutron-mariadb-password
        openstack_helm_endpoints_neutron_rabbitmq_password: neutron-rabbitmq-password
        openstack_helm_endpoints_neutron_keystone_password: neutron-keystone-password
        openstack_helm_endpoints_neutron_metadata_secret: neutron-metadata-secret
        openstack_helm_neutron_values:
          conf:
            auto_bridge_add:
              br-ex: ens4
        # Nova
        openstack_helm_endpoints_nova_api_host: "compute.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_nova_novnc_host: "vnc.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_nova_mariadb_password: nova-mariadb-password
        openstack_helm_endpoints_nova_rabbitmq_password: nova-rabbitmq-password
        openstack_helm_endpoints_nova_keystone_password: nova-keystone-password
        # Ironic
        openstack_helm_endpoints_ironic_api_host: "baremetal.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_ironic_mariadb_password: ironic-mariadb-password
        openstack_helm_endpoints_ironic_rabbitmq_password: ironic-rabbitmq-password
        openstack_helm_endpoints_ironic_keystone_password: ironic-keystone-password
        # Designate
        openstack_helm_endpoints_designate_api_host: "dns.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_designate_mariadb_password: designate-mariadb-password
        openstack_helm_endpoints_designate_rabbitmq_password: designate-rabbitmq-password
        openstack_helm_endpoints_designate_keystone_password: designate-keystone-password
        # Octavia
        openstack_helm_endpoints_octavia_api_host: "load-balancer.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_octavia_mariadb_password: octavia-mariadb-password
        openstack_helm_endpoints_octavia_rabbitmq_password: octavia-rabbitmq-password
        openstack_helm_endpoints_octavia_keystone_password: octavia-keystone-password
        # Heat
        openstack_helm_endpoints_heat_api_host: "orchestration.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_heat_keystone_password: heat-keystone-password
        openstack_helm_endpoints_heat_trustee_keystone_password: heat-trustee-keystone-password
        openstack_helm_endpoints_heat_stack_user_keystone_password: heat-stack-user-keystone-password
        openstack_helm_endpoints_heat_mariadb_password: heat-mariadb-password
        openstack_helm_endpoints_heat_rabbitmq_password: heat-rabbitmq-password
        openstack_helm_endpoints_heat_cfn_api_host: "cloudformation.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_heat_auth_encryption_key: heat-auth-encryption-key
        # Horizon
        openstack_helm_endpoints_horizon_api_host: "dashboard.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_horizon_mariadb_password: horizon-mariadb-password
      cephs:
        ceph_mon_fsid: 441193d8-fed9-485b-87f4-09245ddc1fe7
        ceph_mon_public_network: 10.96.240.0/24
      ceph_osds:
        ceph_osd_devices:
          - /dev/vdb
          - /dev/vdc
          - /dev/vdd
verifier:
  name: testinfra
