abril/molecule/README.md
sholdee 0f23e7e258
Add Calico CNI option (#414)
* 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>
2024-01-26 18:53:27 -06:00

2.9 KiB

Test suites for k3s-ansible

This folder contains the molecule-based test setup for this playbook.

Scenarios

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.

How to execute

To test on your local machine, follow these steps:

System requirements

Make sure that the following software packages are available on your system:

Set up VirtualBox networking on Linux and macOS

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

Install Python dependencies

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

Run molecule

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 the site playbook on the nodes of the test cluster.
  • molecule side_effect: Run the reset 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 the create, converge, verify, side_effect and destroy steps. See molecule.yml for more details.