# 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
  - name: ctl2
    groups: *controller_groups
  - name: ctl3
    groups: *controller_groups
  - name: nvme1
    groups: &nvme_groups
      - cephs
  - 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
        ceph_mon_fsid: 441193d8-fed9-485b-87f4-09245ddc1fe7
        ceph_mon_public_network: 10.96.240.0/24
        kubernetes_hostname: 10.96.240.10
        # OpenStack
        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"
      controllers:
        kubernetes_keepalived_vrid: 42
        kubernetes_keepalived_interface: ens3
        kubernetes_keepalived_vip: 10.96.240.10
      cephs:
        ceph_osd_devices:
          - /dev/vdb
          - /dev/vdc
          - /dev/vdd
verifier:
  name: testinfra
