This folder contains the molecule-based test setup for this playbook.
We have these scenarios:
- default: A 3 control + 2 worker node cluster based very closely on the sample inventory.
- ipv6: A cluster that is externally accessible via IPv6 (more information) To save a bit of test time, this cluster is not highly available, it consists of only one control and one worker node.
- single_node: Very similar to the default scenario, but uses only a single node for all cluster functionality.
- calico: The same as single node, but uses calico cni instead of flannel.
- cilium: The same as single node, but uses cilium cni instead of flannel.
- kube-vip The same as single node, but uses kube-vip as service loadbalancer instead of MetalLB
To test on your local machine, follow these steps:
Make sure that the following software packages are available on your system:
You can safely skip this if you are working on Windows.
Furthermore, the test cluster uses the 192.168.30.0/24
subnet which is not set up by VirtualBox automatically.
To set the subnet up for use with VirtualBox, please make sure that /etc/vbox/networks.conf
exists and that it contains this line:
* 192.168.30.0/24
* fdad:bad:ba55::/64
You will get Molecule, Ansible and a few extra dependencies via pip. Usually, it is advisable to work in a virtual environment for this:
cd /path/to/k3s-ansible
# Create a virtualenv at ".env". You only need to do this once.
python3 -m venv .env
# Activate the virtualenv for your current shell session.
# If you start a new session, you will have to repeat this.
source .env/bin/activate
# Install the required packages into the virtualenv.
# These remain installed across shell sessions.
python3 -m pip install -r requirements.txt
With the virtual environment from the previous step active in your shell session, you can now use molecule to test the playbook. Interesting commands are:
molecule create
: Create virtual machines for the test cluster nodes.molecule destroy
: Delete the virtual machines for the test cluster nodes.molecule converge
: Run thesite
playbook on the nodes of the test cluster.molecule side_effect
: Run thereset
playbook on the nodes of the test cluster.molecule verify
: Verify that the cluster works correctly.molecule test
: The "all-in-one" sequence of steps that is executed in CI. This includes thecreate
,converge
,verify
,side_effect
anddestroy
steps. Seemolecule.yml
for more details.