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/.github/workflows/ceph.yml b/.github/workflows/ceph.yml
new file mode 100644
index 0000000..fd03b14
--- /dev/null
+++ b/.github/workflows/ceph.yml
@@ -0,0 +1,50 @@
+# 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.
+
+name: ceph
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+
+jobs:
+ test:
+ runs-on: ubuntu-20.04-16-cores
+ steps:
+ - name: Checkout project
+ uses: actions/checkout@v3
+
+ - name: Install Poetry
+ run: pipx install poetry
+
+ - name: Setup Python
+ uses: actions/setup-python@v4
+ with:
+ cache: poetry
+
+ - name: Install dependencies
+ run: poetry install --no-interaction --with dev
+
+ # NOTE(mnaser): LVM commands take a long time if there are any existing
+ # loop devices created by "snapd", so we uninstall it.
+ - name: Uninstall "snapd"
+ run: sudo apt-get purge -y snapd
+
+ - name: Turn off swap
+ run: sudo swapoff -a
+
+ - name: Run Molecule
+ run: poetry run molecule test -s ceph
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 86c96bc..6ddf3a4 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -37,50 +37,3 @@
PROJECT_REF=${{ env.PROJECT_REF }}
tags: |
quay.io/vexxhost/ethtool-exporter:${{ env.PROJECT_REF }}
-
- molecule:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout project
- uses: actions/checkout@v3
-
- - name: Install Poetry
- run: pipx install poetry
-
- - name: Setup Python
- uses: actions/setup-python@v4
- with:
- cache: poetry
-
- - name: Install dependencies
- run: poetry install --no-interaction --all-extras
-
- # TODO(mnaser): Move this out to "cleanup" stage
- - name: Set up Go
- uses: actions/setup-go@v4
- with:
- go-version-file: go.mod
- cache: true
- - name: Clean-up stale stacks
- run: go run ./cmd/atmosphere-ci molecule cleanup
- env:
- OS_AUTH_URL: https://auth.vexxhost.net/v3
- OS_REGION_NAME: ca-ymq-1
- OS_USER_DOMAIN_NAME: Default
- OS_USERNAME: ${{ secrets.OS_USERNAME }}
- OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
- OS_PROJECT_DOMAIN_NAME: Default
- OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}
-
- - name: Run Molecule
- run: poetry run molecule test
- timeout-minutes: 120
- env:
- ATMOSPHERE_STACK_NAME: "atmosphere-${{ github.run_id }}-${{ github.run_attempt }}"
- OS_AUTH_URL: https://auth.vexxhost.net/v3
- OS_REGION_NAME: ca-ymq-1
- OS_USER_DOMAIN_NAME: Default
- OS_USERNAME: ${{ secrets.OS_USERNAME }}
- OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
- OS_PROJECT_DOMAIN_NAME: Default
- OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}