# Copyright (c) 2023 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: docker
platforms:
  - name: instance
    image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2004}-ansible:latest
    command: ${MOLECULE_DOCKER_COMMAND:-""}
    privileged: true
    cgroupns_mode: host
    pre_build_image: true
    purge_networks: true
    dns_servers:
      - 1.1.1.1
    docker_networks:
      - name: mgmt
        ipam_config:
          - subnet: 10.96.240.0/24
            gateway: 10.96.240.1
      - name: public
        ipam_config:
          - subnet: 10.96.250.0/24
            gateway: 10.96.250.1
    networks:
      - name: mgmt
      - name: public
    security_opts:
      - apparmor=unconfined
    volumes:
      - /dev:/dev
      - /lib/modules:/lib/modules:ro
      - /sys/fs/cgroup:/sys/fs/cgroup:rw
      - /usr/src:/usr/src:ro
    groups:
      - controllers
      - cephs
      - computes
provisioner:
  name: ansible
  config_options:
    connection:
      pipelining: true
    tags:
      skip: >-
        sysctl,
        ethtool,
        node-feature-discovery,
        kube-prometheus-stack,
        loki,
        vector,
        prometheus-ethtool-exporter,
        ipmi-exporter,
        prometheus-pushgateway,
        lpfc,
        senlin,
        designate,
        heat,
        octavia,
        magnum,
        manila,
        horizon,
        openstack-exporter
  options:
    inventory: "${MOLECULE_EPHEMERAL_DIRECTORY}/workspace"
  inventory:
    links:
      host_vars: "${MOLECULE_SCENARIO_DIRECTORY}/host_vars"
      group_vars: "${MOLECULE_SCENARIO_DIRECTORY}/group_vars"
verifier:
  name: ansible
