fix(kubeovn): derive MASTER_NODES from server group for multi-master support #42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: Test | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install dependencies | |
| run: pip install ansible-core ansible-lint | |
| - name: Build and install collection | |
| run: | | |
| ansible-galaxy collection build | |
| ansible-galaxy collection install cozystack-installer-*.tar.gz --force | |
| - name: Install collection dependencies | |
| run: ansible-galaxy collection install --requirements-file requirements.yml | |
| - name: Run ansible-lint | |
| run: ansible-lint | |
| - name: Syntax check Ubuntu example | |
| run: ansible-playbook examples/ubuntu/prepare-ubuntu.yml --syntax-check | |
| - name: Syntax check SUSE example | |
| run: ansible-playbook examples/suse/prepare-suse.yml --syntax-check | |
| - name: Syntax check RHEL example | |
| run: ansible-playbook examples/rhel/prepare-rhel.yml --syntax-check | |
| sanity: | |
| name: Sanity | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| path: ansible_collections/cozystack/installer | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install ansible-core | |
| run: pip install ansible-core | |
| - name: Run sanity tests | |
| working-directory: ansible_collections/cozystack/installer | |
| run: ansible-test sanity --color | |
| master-nodes: | |
| name: Multi-master MASTER_NODES | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install Ansible | |
| run: pip install ansible-core | |
| - name: Test auto-detection from server group (3 nodes) | |
| run: >- | |
| ansible-playbook tests/test-master-nodes.yml | |
| --inventory tests/test-multi-master-inventory.yml | |
| - name: Test single-node inventory | |
| run: >- | |
| ansible-playbook tests/test-master-nodes.yml | |
| --inventory tests/ci-inventory.yml | |
| e2e: | |
| name: E2E | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install Ansible | |
| run: pip install ansible-core | |
| - name: Build and install collection | |
| run: | | |
| ansible-galaxy collection build | |
| ansible-galaxy collection install cozystack-installer-*.tar.gz --force | |
| - name: Install collection dependencies | |
| run: | | |
| ansible-galaxy collection install --requirements-file requirements.yml | |
| ansible-galaxy collection install --requirements-file tests/requirements.yml | |
| - name: Run full pipeline | |
| run: >- | |
| sudo env "PATH=$PATH" "HOME=$HOME" ansible-playbook examples/ubuntu/site.yml | |
| --inventory tests/ci-inventory.yml | |
| - name: Verify operator is running | |
| run: | | |
| sudo kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml \ | |
| wait deployment/cozystack-operator \ | |
| --namespace cozy-system \ | |
| --timeout=120s \ | |
| --for=condition=Available | |
| - name: Verify CRDs are established | |
| run: | | |
| sudo kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml \ | |
| wait crd/packages.cozystack.io \ | |
| --for=condition=Established \ | |
| --timeout=60s | |
| - name: Verify Platform Package exists | |
| run: | | |
| sudo kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml \ | |
| get package cozystack.cozystack-platform \ | |
| --namespace cozy-system | |
| - name: Test idempotency (second run) | |
| run: >- | |
| sudo env "PATH=$PATH" "HOME=$HOME" ansible-playbook examples/ubuntu/site.yml | |
| --inventory tests/ci-inventory.yml |