test_molecule - sk4zuzu/one-deploy GitHub Wiki
Molecule testing
Requirements (Client)
Molecule
and pyone
are installed as Python/pip dependencies for one-deploy
:
~/one-deploy$ cat requirements.txt
netaddr
molecule
pyone>=6.8.0
You can install all one-deploy requirements using the included Makefile:
~/one-deploy $ make requirements
Or directly:
~/one-deploy $ pip3 install -r requirements.txt
~/one-deploy $ ansible-galaxy collection install -r requirements.yml
Requirements (Server)
To deploy Molecule integration environments (ceph-hci
, passenger-ha
, ...) you will need a working
OpenNebula instance with pre-configured networking and pre-installed OS images and VM templates.
[!NOTE] You can download OS images and VM templates from OpenNebula's Public Marketplace.
Download (and rename) VM templates and OS images into your OpenNebula instance:
Ubuntu 22.04
->ubuntu2204
Ubuntu 20.04
->ubuntu2004
AlmaLinux 9
->alma9
AlmaLinux 8
->alma8
Configuration
Create the .env.yml
file in your one-deploy
's root directory, with the following content (you can use .env.yml.sample
as a template):
ONE_HOST: http://localhost:2633/RPC2
ONE_USER: oneadmin
ONE_PSWD: opennebula
ONE_TOKEN: example:example
ONE_VNET: service
ONE_SUBNET: 172.20.0.0/16
ONE_RANGE1: 172.20.86.100 4
ONE_RANGE2: 172.20.86.104 4
ONE_RANGE3: 172.20.86.108 4
- Provide OpenNebula endpoint and credentials.
- Provide your support token (required for the
prometheus-ha
environment). - Customize VNET name, subnet and IP ranges.
Converging Environments
To list all available environments/tests:
molecule list
~/one-deploy $ molecule list
INFO Running ceph-hci > list
INFO Running passenger-ha > list
INFO Running prometheus-ha > list
β· β· β· β· β·
Instance Name β Driver Name β Provisioner Name β Scenario Name β Created β Converged
βΆβββββββββββββββββββΌββββββββββββββΌβββββββββββββββββββΌββββββββββββββββΌββββββββββΌββββββββββββ΄
ceph-hci-f1 β default β ansible β ceph-hci β false β false
ceph-hci-n1 β default β ansible β ceph-hci β false β false
ceph-hci-n2 β default β ansible β ceph-hci β false β false
passenger-ha-f1 β default β ansible β passenger-ha β false β false
passenger-ha-f2 β default β ansible β passenger-ha β false β false
passenger-ha-f3 β default β ansible β passenger-ha β false β false
passenger-ha-f4 β default β ansible β passenger-ha β false β false
prometheus-ha-f1 β default β ansible β prometheus-ha β false β false
prometheus-ha-f2 β default β ansible β prometheus-ha β false β false
prometheus-ha-f3 β default β ansible β prometheus-ha β false β false
prometheus-ha-f4 β default β ansible β prometheus-ha β false β false
To deploy the ceph-hci
environment:
~/one-deploy $ molecule converge -s ceph-hci
If everything goes well, you should be able to log in and examine the environment:
~/one-deploy $ molecule list -s ceph-hci
INFO Running ceph-hci > list
β· β· β· β· β·
Instance Name β Driver Name β Provisioner Name β Scenario Name β Created β Converged
βΆββββββββββββββββΌββββββββββββββΌβββββββββββββββββββΌββββββββββββββββΌββββββββββΌββββββββββββ΄
ceph-hci-f1 β default β ansible β ceph-hci β true β true
ceph-hci-n1 β default β ansible β ceph-hci β true β true
ceph-hci-n2 β default β ansible β ceph-hci β true β true
$ onevm ssh ceph-hci-f1
Destroying environments
To destroy a specific environment:
~/one-deploy $ molecule destroy -s ceph-hci
~/one-deploy $ molecule list -s ceph-hci
INFO Running ceph-hci > list
β· β· β· β· β·
Instance Name β Driver Name β Provisioner Name β Scenario Name β Created β Converged
βΆββββββββββββββββΌββββββββββββββΌβββββββββββββββββββΌββββββββββββββββΌββββββββββΌββββββββββββ΄
ceph-hci-f1 β default β ansible β ceph-hci β false β false
ceph-hci-n1 β default β ansible β ceph-hci β false β false
ceph-hci-n2 β default β ansible β ceph-hci β false β false
To destroy all available environments:
~/one-deploy $ molecule destroy --all