feat(k3s_upgrade): regenerate service files from templates instead of restoring backups #6
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: Integration Test | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| container_os: [debian12] | |
| # K3s requires privileged containers to run inside Docker and access to cgrougs. | |
| steps: | |
| - name: Checkout codebase | |
| uses: actions/checkout@v6 | |
| - name: Set up Python 3.13. | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.13.x' | |
| - name: Install Ansible and dependencies | |
| run: | | |
| pip install ansible | |
| ansible-galaxy collection install -r collections/requirements.yml | |
| - name: Verify Inventory | |
| run: ansible-inventory -i tests/basic.yml --list | |
| - name: Create Docker Network | |
| run: docker network create k3s-ansible | |
| - name: Start Docker containers | |
| run: | | |
| # Start the Server node | |
| docker run -d --name server-node \ | |
| --privileged \ | |
| --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \ | |
| --volume=/lib/modules:/lib/modules:ro \ | |
| --cgroupns=host \ | |
| --network=k3s-ansible \ | |
| geerlingguy/docker-${{ matrix.container_os }}-ansible:latest | |
| # Start the Agent node | |
| docker run -d --name agent-node \ | |
| --privileged \ | |
| --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \ | |
| --volume=/lib/modules:/lib/modules:ro \ | |
| --cgroupns=host \ | |
| --network=k3s-ansible \ | |
| geerlingguy/docker-${{ matrix.container_os }}-ansible:latest | |
| - name: Run Playbook | |
| env: | |
| ANSIBLE_FORCE_COLOR: '1' | |
| run: ansible-playbook playbooks/site.yml -i tests/basic.yml | |
| - name: Verify K3s is running on Server | |
| run: docker exec server-node k3s kubectl get nodes | grep Ready | |
| - name: Verify K3s is running on Agent | |
| run: docker exec agent-node systemctl status k3s-agent | grep running | |
| - name: Remove K3s from Server and Agent | |
| run: ansible-playbook playbooks/reset.yml -i tests/basic.yml | |
| - name: Stop and remove Docker containers | |
| run: | | |
| docker stop server-node && docker rm -f server-node | |
| docker stop agent-node && docker rm -f agent-node | |
| docker network rm k3s-ansible |