test: add aio tests (#318)

* test: add aio tests

* ci: fix runs-on node

* ci: add tmate

* Tmate after converge

* Run destroy always

* Disable ipv6 in runner

* Fix permission for ipv6 disable

* disable ipv6 permanently

* Fix sysctl configuration

* Fix typo

* ci: test disable_ipv6

* ci: use focal node

* ci: add aio inside gha

* wip: aio

* ci: fix become for prepare

* ci: add ceph bootstrap

* ci: add ceph backend

* ci: fix ceph + use bigger node

* ci: fix ci for aio

* ci: increase number of cores

* Set virt_type as qemu

* Fix nic name in auto bridge add

* Disable auto bridge add in molecule aio

* ci: run full suite with eth1

* ci: fix molecule command

* ci: clean-up more values

* ci: use correct ip

* ci: use correct keepalived interface

* Fix glance_images

* fix ceph_mon_config_overrides keys and set mon_max_pg_per_osd as 500

* Enable fact gathering in tempest playbook

* Use other address for ceph_public_network and reduce image upload

- 10.0.0.0/22 is confused with cilium network. So mon ip is catched from cilium host nic in idempotence.

* fix(ceph-provisioners): stop depending on ceph-csi-rbd

* fix: allow for hci label adding

* fix: add ceph scenario

* ci: enable nested virt

* ci: final cleanup

---------

Co-authored-by: okozachenko1203 <okozachenko1203@users.noreply.github.com>
diff --git a/molecule/ceph/molecule.yml b/molecule/ceph/molecule.yml
new file mode 100644
index 0000000..2cd63c6
--- /dev/null
+++ b/molecule/ceph/molecule.yml
@@ -0,0 +1,84 @@
+# 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