forked from tim/k3s-ansible
* Add Tigera Operator/Calico CNI option Small tweak to reduce delta from head Set calico option to be disabled by default Add rescue blocks in case updating existing Refactor items and update comments Refactor and consolidate calico.yml into block Refactor to use template for Calico CRs Revert use_calico to false Template blockSize Align default cidr in template with all.yml sample Apply upstream version tags Revert to current ver tags. Upstream's don't work. Update template address detection Add Tigera Operator/Calico CNI option * Add calico-apiserver check * Add eBPF dataplane option * Add kube svc endpoint configmap when ebpf enabled * Add /etc/cni/net.d to reset task * Refactor based on comments * Add molecule scenario * Fix lint --------- Co-authored-by: Techno Tim <timothystewart6@gmail.com>
99 lines
3.4 KiB
YAML
99 lines
3.4 KiB
YAML
---
|
|
name: Test
|
|
on:
|
|
workflow_call:
|
|
jobs:
|
|
molecule:
|
|
name: Molecule
|
|
runs-on: self-hosted
|
|
strategy:
|
|
matrix:
|
|
scenario:
|
|
- default
|
|
- ipv6
|
|
- single_node
|
|
- calico
|
|
fail-fast: false
|
|
env:
|
|
PYTHON_VERSION: "3.11"
|
|
|
|
steps:
|
|
- name: Check out the codebase
|
|
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Configure VirtualBox
|
|
run: |-
|
|
sudo mkdir -p /etc/vbox
|
|
cat <<EOF | sudo tee -a /etc/vbox/networks.conf > /dev/null
|
|
* 192.168.30.0/24
|
|
* fdad:bad:ba55::/64
|
|
EOF
|
|
|
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
|
uses: actions/setup-python@75f3110429a8c05be0e1bf360334e4cced2b63fa # 2.3.3
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
cache: 'pip' # caching pip dependencies
|
|
|
|
- name: Restore vagrant Boxes cache
|
|
uses: actions/cache/restore@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # 4.0
|
|
with:
|
|
path: ~/.vagrant.d/boxes
|
|
key: vagrant-boxes-${{ hashFiles('**/molecule.yml') }}
|
|
fail-on-cache-miss: true
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
echo "::group::Upgrade pip"
|
|
python3 -m pip install --upgrade pip
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Install Python requirements from requirements.txt"
|
|
python3 -m pip install -r requirements.txt
|
|
echo "::endgroup::"
|
|
|
|
- name: Test with molecule
|
|
run: molecule test --scenario-name ${{ matrix.scenario }}
|
|
timeout-minutes: 90
|
|
env:
|
|
ANSIBLE_K3S_LOG_DIR: ${{ runner.temp }}/logs/k3s-ansible/${{ matrix.scenario }}
|
|
ANSIBLE_SSH_RETRIES: 4
|
|
ANSIBLE_TIMEOUT: 120
|
|
PY_COLORS: 1
|
|
ANSIBLE_FORCE_COLOR: 1
|
|
|
|
# these steps are necessary if not using ephemeral nodes
|
|
- name: Delete old Vagrant box versions
|
|
if: always() # do this even if a step before has failed
|
|
run: vagrant box prune --force
|
|
|
|
- name: Remove all local Vagrant boxes
|
|
if: always() # do this even if a step before has failed
|
|
run: vagrant box list | cut -f 1 -d ' ' | xargs -L 1 vagrant box remove -f
|
|
|
|
- name: Remove all Virtualbox VMs
|
|
if: always() # do this even if a step before has failed
|
|
run: VBoxManage list vms | awk -F'"' '{print $2}' | xargs -I {} VBoxManage unregistervm --delete "{}"
|
|
|
|
- name: Remove all Virtualbox HDs
|
|
if: always() # do this even if a step before has failed
|
|
run: VBoxManage list hdds | awk -F':' '/^UUID:/ {print $2}' | xargs -I {} VBoxManage closemedium disk "{}" --delete
|
|
|
|
- name: Remove all Virtualbox Networks
|
|
if: always() # do this even if a step before has failed
|
|
run: VBoxManage list hostonlyifs | grep '^Name:' | awk '{print $2}' | grep '^vboxnet' | xargs -I {} VBoxManage hostonlyif remove {}
|
|
|
|
- name: Remove Virtualbox network config
|
|
if: always() # do this even if a step before has failed
|
|
run: sudo rm /etc/vbox/networks.conf
|
|
|
|
- name: Upload log files
|
|
if: always() # do this even if a step before has failed
|
|
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1
|
|
with:
|
|
name: logs
|
|
path: |
|
|
${{ runner.temp }}/logs
|