mirror of
https://github.com/k3s-io/k3s-ansible.git
synced 2025-12-26 00:22:36 +01:00
89 lines
2.7 KiB
YAML
89 lines
2.7 KiB
YAML
---
|
|
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: Modify the k3s_version in inventory for upgrade
|
|
run: |
|
|
sed -i 's/k3s_version: v1.33.4+k3s1/k3s_version: v1.34.1+k3s1/' tests/basic.yml
|
|
|
|
- name: Run Upgrade Playbook
|
|
run: ansible-playbook playbooks/upgrade.yml -i tests/basic.yml
|
|
|
|
- name: Verify K3s upgraded on Server
|
|
run: docker exec server-node k3s --version | grep v1.34.
|
|
|
|
- name: Verify K3s upgraded on Agent
|
|
run: docker exec agent-node k3s --version | grep v1.34.
|
|
|
|
- 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
|