* 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>
76 lines
2.9 KiB
Markdown
76 lines
2.9 KiB
Markdown
# Test suites for `k3s-ansible`
|
|
|
|
This folder contains the [molecule](https://molecule.rtfd.io/)-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](../inventory/sample/).
|
|
- **ipv6**:
|
|
A cluster that is externally accessible via IPv6 ([more information](ipv6/README.md))
|
|
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:
|
|
|
|
- [Python 3](https://www.python.org/downloads)
|
|
- [Vagrant](https://www.vagrantup.com/downloads)
|
|
- [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
|
|
|
|
### 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](https://www.virtualbox.org/manual/ch06.html#network_hostonly).
|
|
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](../requirements.txt) via [pip](https://pip.pypa.io/).
|
|
Usually, it is advisable to work in a [virtual environment](https://docs.python.org/3/tutorial/venv.html) for this:
|
|
|
|
```bash
|
|
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`](default/molecule.yml) for more details.
|