# 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
  options:
    extra-vars: "@${MOLECULE_EPHEMERAL_DIRECTORY}/secrets.yml"
  config_options:
    ssh_connection:
      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
        # Keystone
        openstack_helm_endpoints_keystone_api_host: "identity.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Glance
        openstack_helm_endpoints_glance_api_host: "image.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Cinder
        openstack_helm_endpoints_cinder_api_host: "volume.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Placement
        openstack_helm_endpoints_placement_api_host: "placement.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Neutron
        openstack_helm_endpoints_neutron_api_host: "network.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        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"
        # Ironic
        openstack_helm_endpoints_ironic_api_host: "baremetal.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Designate
        openstack_helm_endpoints_designate_api_host: "dns.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Octavia
        openstack_helm_endpoints_octavia_api_host: "load-balancer.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Senlin
        openstack_helm_endpoints_senlin_api_host: "clustering.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Heat
        openstack_helm_endpoints_heat_api_host: "orchestration.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        openstack_helm_endpoints_heat_cfn_api_host: "cloudformation.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
        # Horizon
        openstack_helm_endpoints_horizon_api_host: "dashboard.{{ hostvars['ctl1']['ansible_host'].replace('.', '-') }}.nip.io"
      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
