molecule-plugins 23.5.3__tar.gz → 23.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- molecule_plugins-23.7.0/.github/workflows/ack.yml +15 -0
- molecule_plugins-23.7.0/.github/workflows/push.yml +13 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.github/workflows/release.yml +3 -2
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.github/workflows/tox.yml +5 -3
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.gitignore +7 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/PKG-INFO +31 -7
- molecule_plugins-23.7.0/README.md +45 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/conftest.py +4 -2
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/doc/openstack/platforms.rst +10 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/molecule/test-podman/molecule.yml +1 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/pyproject.toml +12 -9
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/requirements.yml +1 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/_version.py +2 -2
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/driver.py +4 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/driver.py +8 -3
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/create.yml +13 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/validate-dockerfile.yml +1 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/create.yml +2 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/driver.py +5 -5
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/driver.py +4 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/tasks/create_linux_instance.yml +5 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/tasks/create_windows_instance.yml +5 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/driver.py +2 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/create.yml +2 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/driver.py +8 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/create.yml +4 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/validate-dockerfile.yml +2 -3
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/driver.py +4 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/modules/vagrant.py +72 -67
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/PKG-INFO +31 -7
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/SOURCES.txt +33 -31
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/requires.txt +4 -2
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/functional/test_azure.py +10 -6
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/functional/test_containers.py +5 -3
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/env-substitution/molecule/default/molecule.yml +1 -1
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/test_func.py +13 -8
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/functional/test_ec2.py +7 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/functional/test_func.py +7 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/INSTALL.md +4 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/INSTALL.md +4 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/test_func.py +7 -4
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/podman/test_func.py +13 -6
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/functional/test_func.py +16 -11
- molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/box_url/molecule.yml +15 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/hostname/molecule.yml +3 -3
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/multi-node/molecule.yml +2 -8
- molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/vagrant_root/converge.yml +10 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tox.ini +1 -0
- molecule-plugins-23.5.3/.github/workflows/ack.yml +0 -9
- molecule-plugins-23.5.3/.github/workflows/push.yml +0 -12
- molecule-plugins-23.5.3/README.md +0 -22
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.ansible-lint +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.ansible-lint-ignore +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.flake8 +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.github/dependabot.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.github/release-drafter.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/.pre-commit-config.yaml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/LICENSE +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/MANIFEST.in +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/bindep.txt +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/doc/ec2/README.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/doc/ec2/platforms.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/doc/openstack/README.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/doc/vagrant/README.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/molecule/test-podman/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/molecule/test-podman/verify.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/mypy.ini +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/pytest.ini +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/setup.cfg +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/create.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/Dockerfile.j2 +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/filter_plugins/get_docker_networks.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/tasks/create_network.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/tasks/delete_network.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/destroy.yml +5 -5
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/create.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/files/windows_auth.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/handlers/main.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/tasks/server_addr.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/tasks/vars.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/Dockerfile.j2 +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/py.typed +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/cookiecutter.json +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/modules/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/create.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/dependency_links.txt +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/entry_points.txt +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/top_level.txt +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/functional/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/functional/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/tests/test_default.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/tests/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/tests/test_default.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/azure/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/functional/.ansible-lint +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/functional/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/functional/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/scenarios/driver/containers/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/scenarios/driver/containers/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/containers/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/env-substitution/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/Dockerfile.j2 +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/FOO +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/docker/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/functional/.ansible-lint +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/functional/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/functional/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/tests/test_default.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/tests/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/tests/test_default.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/ec2/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/functional/.ansible-lint +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/functional/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/functional/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/create.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/files/windows_auth.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/handlers/main.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/requirements.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/tasks/create_linux_instance.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/tasks/create_windows_instance.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/verify.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/create.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/destroy.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/files/windows_auth.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/handlers/main.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/prepare.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/requirements.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/tasks/create_linux_instance.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/tasks/create_windows_instance.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/verify.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/gce/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/.ansible-lint +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/default/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/multiple/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/multiple/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/network/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/network/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/security_group/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/security_group/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/volume/converge.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/volume/molecule.yml +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/openstack/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/podman/__init__.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/podman/conftest.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/test/podman/test_driver.py +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/__init__.py +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/functional/__init__.py +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/functional/conftest.py +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/config_options → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/box_url}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/default → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/config_options}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/config_options/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/config_options/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/hostname → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/default}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/default/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/default-compat/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/default-compat/create.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/default-compat/destroy.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/default-compat/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/invalid → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/hostname}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/hostname/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/multi-node → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/invalid}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/invalid/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/network → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/multi-node}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/multi-node/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/provider_config_options → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/network}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/network/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/network/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant/scenarios/molecule/vagrant_root → molecule_plugins-23.7.0/test/vagrant-plugin/scenarios/molecule/provider_config_options}/converge.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/provider_config_options/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/provider_config_options/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/vagrant_root/molecule.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/scenarios/molecule/vagrant_root/verify.yml +0 -0
- {molecule-plugins-23.5.3/test/vagrant → molecule_plugins-23.7.0/test/vagrant-plugin}/test_driver.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tools/Vagrantfile +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tools/create_testbox.sh +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tools/extract_plugin_names.py +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tools/generate-templates.sh +0 -0
- {molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/tools/test-setup.sh +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
# See https://github.com/ansible/team-devtools/blob/main/.github/workflows/ack.yml
|
|
3
|
+
name: ack
|
|
4
|
+
|
|
5
|
+
concurrency:
|
|
6
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
7
|
+
cancel-in-progress: true
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
pull_request_target:
|
|
11
|
+
types: [opened, labeled, unlabeled, synchronize]
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
ack:
|
|
15
|
+
uses: ansible/team-devtools/.github/workflows/ack.yml@main
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
---
|
|
1
2
|
name: release
|
|
2
3
|
|
|
3
4
|
on:
|
|
@@ -18,10 +19,10 @@ jobs:
|
|
|
18
19
|
TOX_PARALLEL_NO_SPINNER: 1
|
|
19
20
|
|
|
20
21
|
steps:
|
|
21
|
-
- name: Switch to using Python 3.
|
|
22
|
+
- name: Switch to using Python 3.10 by default
|
|
22
23
|
uses: actions/setup-python@v5
|
|
23
24
|
with:
|
|
24
|
-
python-version: 3.
|
|
25
|
+
python-version: "3.10"
|
|
25
26
|
|
|
26
27
|
- name: Install tox
|
|
27
28
|
run: >-
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
---
|
|
1
2
|
name: tox
|
|
2
3
|
|
|
3
4
|
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
|
|
@@ -22,9 +23,9 @@ jobs:
|
|
|
22
23
|
id: generate_matrix
|
|
23
24
|
uses: coactions/dynamic-matrix@v1
|
|
24
25
|
with:
|
|
25
|
-
min_python: "3.
|
|
26
|
+
min_python: "3.10"
|
|
26
27
|
max_python: "3.12"
|
|
27
|
-
default_python: "3.
|
|
28
|
+
default_python: "3.10" # used by jobs in other_names
|
|
28
29
|
other_names: |
|
|
29
30
|
lint
|
|
30
31
|
pkg
|
|
@@ -40,7 +41,8 @@ jobs:
|
|
|
40
41
|
matrix: ${{ fromJson(needs.pre.outputs.matrix) }}
|
|
41
42
|
|
|
42
43
|
steps:
|
|
43
|
-
-
|
|
44
|
+
- name: Checkout repository
|
|
45
|
+
uses: actions/checkout@v4
|
|
44
46
|
with:
|
|
45
47
|
fetch-depth: 0 # needed by setuptools-scm
|
|
46
48
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: molecule-plugins
|
|
3
|
-
Version: 23.
|
|
3
|
+
Version: 23.7.0
|
|
4
4
|
Summary: Molecule Plugins
|
|
5
5
|
Author-email: Sorin Sbarnea <sorin.sbarnea@gmail.com>
|
|
6
6
|
Maintainer-email: Sorin Sbarnea <sorin.sbarnea@gmail.com>
|
|
@@ -19,7 +19,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
19
19
|
Classifier: Operating System :: MacOS
|
|
20
20
|
Classifier: Operating System :: POSIX
|
|
21
21
|
Classifier: Programming Language :: Python :: 3
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.11
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -29,13 +28,13 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
29
28
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
30
29
|
Classifier: Topic :: Software Development :: Testing
|
|
31
30
|
Classifier: Topic :: Utilities
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
33
32
|
Description-Content-Type: text/markdown
|
|
34
33
|
License-File: LICENSE
|
|
35
|
-
Requires-Dist: molecule>=
|
|
34
|
+
Requires-Dist: molecule>=25.1.0
|
|
36
35
|
Provides-Extra: test
|
|
37
36
|
Requires-Dist: pytest-helpers-namespace>=2019.1.8; extra == "test"
|
|
38
|
-
Requires-Dist: molecule[test]>=
|
|
37
|
+
Requires-Dist: molecule[test]>=25.1.0; extra == "test"
|
|
39
38
|
Provides-Extra: azure
|
|
40
39
|
Provides-Extra: docker
|
|
41
40
|
Requires-Dist: selinux; sys_platform == "linux2" and extra == "docker"
|
|
@@ -44,6 +43,8 @@ Requires-Dist: docker>=4.3.1; extra == "docker"
|
|
|
44
43
|
Requires-Dist: requests; extra == "docker"
|
|
45
44
|
Provides-Extra: ec2
|
|
46
45
|
Provides-Extra: gce
|
|
46
|
+
Requires-Dist: requests>=2.31.0; extra == "gce"
|
|
47
|
+
Requires-Dist: google-auth>=2.28.2; extra == "gce"
|
|
47
48
|
Provides-Extra: podman
|
|
48
49
|
Provides-Extra: selinux
|
|
49
50
|
Requires-Dist: selinux; sys_platform == "linux2" and extra == "selinux"
|
|
@@ -66,7 +67,6 @@ This repository contains the following molecule plugins:
|
|
|
66
67
|
- podman
|
|
67
68
|
- vagrant
|
|
68
69
|
|
|
69
|
-
|
|
70
70
|
Installing `molecule-plugins` does not install dependencies specific to each,
|
|
71
71
|
plugin. To install these you need to install the extras for each plugin, like
|
|
72
72
|
`pip3 install 'molecule-plugins[azure]'`.
|
|
@@ -75,3 +75,27 @@ Before installing these plugins be sure that you uninstall their old standalone
|
|
|
75
75
|
packages, like `pip3 uninstall molecule-azure`. If you fail to do so, you will
|
|
76
76
|
end-up with a broken setup, as multiple plugins will have the same entry points,
|
|
77
77
|
registered.
|
|
78
|
+
|
|
79
|
+
## Creating new releases
|
|
80
|
+
|
|
81
|
+
The `release.yml` workflow generates the wheel and uploads the release to PyPI.
|
|
82
|
+
Here are the steps you need to kick that process off:
|
|
83
|
+
|
|
84
|
+
1. Review the commit logs and decide on the next version.
|
|
85
|
+
- Breaking changes should increment to a new major version.
|
|
86
|
+
- New features should increment to a new minor version.
|
|
87
|
+
- Bug fixes and small changes should increment to a new patch version.
|
|
88
|
+
|
|
89
|
+
2. Create a new tag and push it to the repo.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git tag -s <NEW_VERSION> -m "Tag message"
|
|
93
|
+
git push --tags upstream
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
> It is possible to create lightweight tags using `git tag <NEW_VERSION>` but signed tags are preferred.
|
|
97
|
+
|
|
98
|
+
3. Publish the release with either the GitHub CLI or in a browser.
|
|
99
|
+
See the [GitHub documentation about managing releases](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
|
|
100
|
+
4. Check the [release workflow](https://github.com/ansible-community/molecule-plugins/actions/workflows/release.yml) runs successfully.
|
|
101
|
+
5. Verify the new version is available from the [molecule-plugins](https://pypi.org/project/molecule-plugins/) page on PyPI.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# molecule-plugins
|
|
2
|
+
|
|
3
|
+
This repository contains the following molecule plugins:
|
|
4
|
+
|
|
5
|
+
- azure
|
|
6
|
+
- containers
|
|
7
|
+
- docker
|
|
8
|
+
- ec2
|
|
9
|
+
- gce
|
|
10
|
+
- openstack
|
|
11
|
+
- podman
|
|
12
|
+
- vagrant
|
|
13
|
+
|
|
14
|
+
Installing `molecule-plugins` does not install dependencies specific to each,
|
|
15
|
+
plugin. To install these you need to install the extras for each plugin, like
|
|
16
|
+
`pip3 install 'molecule-plugins[azure]'`.
|
|
17
|
+
|
|
18
|
+
Before installing these plugins be sure that you uninstall their old standalone
|
|
19
|
+
packages, like `pip3 uninstall molecule-azure`. If you fail to do so, you will
|
|
20
|
+
end-up with a broken setup, as multiple plugins will have the same entry points,
|
|
21
|
+
registered.
|
|
22
|
+
|
|
23
|
+
## Creating new releases
|
|
24
|
+
|
|
25
|
+
The `release.yml` workflow generates the wheel and uploads the release to PyPI.
|
|
26
|
+
Here are the steps you need to kick that process off:
|
|
27
|
+
|
|
28
|
+
1. Review the commit logs and decide on the next version.
|
|
29
|
+
- Breaking changes should increment to a new major version.
|
|
30
|
+
- New features should increment to a new minor version.
|
|
31
|
+
- Bug fixes and small changes should increment to a new patch version.
|
|
32
|
+
|
|
33
|
+
2. Create a new tag and push it to the repo.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git tag -s <NEW_VERSION> -m "Tag message"
|
|
37
|
+
git push --tags upstream
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> It is possible to create lightweight tags using `git tag <NEW_VERSION>` but signed tags are preferred.
|
|
41
|
+
|
|
42
|
+
3. Publish the release with either the GitHub CLI or in a browser.
|
|
43
|
+
See the [GitHub documentation about managing releases](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
|
|
44
|
+
4. Check the [release workflow](https://github.com/ansible-community/molecule-plugins/actions/workflows/release.yml) runs successfully.
|
|
45
|
+
5. Verify the new version is available from the [molecule-plugins](https://pypi.org/project/molecule-plugins/) page on PyPI.
|
|
@@ -3,10 +3,12 @@ import os
|
|
|
3
3
|
import random
|
|
4
4
|
import shutil
|
|
5
5
|
import string
|
|
6
|
+
from pathlib import Path
|
|
6
7
|
|
|
7
8
|
import pytest
|
|
8
9
|
|
|
9
|
-
from molecule import config, logger
|
|
10
|
+
from molecule import config, logger
|
|
11
|
+
from molecule.app import get_app
|
|
10
12
|
from molecule.scenario import ephemeral_directory
|
|
11
13
|
|
|
12
14
|
LOG = logger.get_logger(__name__)
|
|
@@ -18,7 +20,7 @@ def run_command(cmd, env=os.environ, log=True):
|
|
|
18
20
|
if log:
|
|
19
21
|
cmd = _rebake_command(cmd, env)
|
|
20
22
|
cmd = cmd.bake(_truncate_exc=False)
|
|
21
|
-
return
|
|
23
|
+
return get_app(Path()).run_command(cmd, env=env)
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
def _rebake_command(cmd, env, out=LOG.info, err=LOG.error):
|
|
@@ -43,6 +43,12 @@ security_group.rules[].port_min Starting port (can't be used with port)
|
|
|
43
43
|
security_group.rules[].port_max Ending port (can't be used with port)
|
|
44
44
|
security_group.rules[].type IPv4 or IPv6, default 'IPv4'
|
|
45
45
|
user Default user of image
|
|
46
|
+
auto_ip Ensure instance has public IP, mutually \
|
|
47
|
+
exclusive with floating_ip_pools, \
|
|
48
|
+
default = true
|
|
49
|
+
floating_ip_pools List of floating pool IP names to choose a \
|
|
50
|
+
floating IP from, mutually exclusive with \
|
|
51
|
+
auto_ip, (optional)
|
|
46
52
|
volume Mapping of volume settings (optional if \
|
|
47
53
|
flavor provides volume)
|
|
48
54
|
volume.size Size of volume (GB)
|
|
@@ -96,6 +102,8 @@ Examples
|
|
|
96
102
|
flavor: m1.small
|
|
97
103
|
image: Debian_10
|
|
98
104
|
user: debian
|
|
105
|
+
floating_ip_pools: # mutually exclusive with auto_ip
|
|
106
|
+
- 1.2.3.4
|
|
99
107
|
network:
|
|
100
108
|
name: molecule
|
|
101
109
|
router:
|
|
@@ -139,9 +147,10 @@ Examples
|
|
|
139
147
|
network:
|
|
140
148
|
name: molecule # use network from debian10 instance
|
|
141
149
|
- name: ubuntu2004
|
|
142
|
-
|
|
150
|
+
flavor: m1.tiny
|
|
143
151
|
image: Ubuntu_2004
|
|
144
152
|
user: ubuntu
|
|
153
|
+
auto_ip: false # do not assign a public IP
|
|
145
154
|
security_group:
|
|
146
155
|
name: molecule # use security group from debian10 instance
|
|
147
156
|
network:
|
|
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
# https://peps.python.org/pep-0621/#readme
|
|
11
|
-
requires-python = ">=3.
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
12
|
dynamic = ["version"]
|
|
13
13
|
name = "molecule-plugins"
|
|
14
14
|
description = "Molecule Plugins"
|
|
@@ -26,7 +26,6 @@ classifiers = [
|
|
|
26
26
|
"Operating System :: MacOS",
|
|
27
27
|
"Operating System :: POSIX",
|
|
28
28
|
"Programming Language :: Python :: 3",
|
|
29
|
-
"Programming Language :: Python :: 3.9",
|
|
30
29
|
"Programming Language :: Python :: 3.10",
|
|
31
30
|
"Programming Language :: Python :: 3.11",
|
|
32
31
|
"Programming Language :: Python :: 3.12",
|
|
@@ -40,7 +39,7 @@ classifiers = [
|
|
|
40
39
|
keywords = ["ansible", "testing", "molecule", "plugin"]
|
|
41
40
|
dependencies = [
|
|
42
41
|
# molecule plugins are not allowed to mention Ansible as a direct dependency
|
|
43
|
-
"molecule >=
|
|
42
|
+
"molecule >= 25.1.0",
|
|
44
43
|
]
|
|
45
44
|
|
|
46
45
|
[project.urls]
|
|
@@ -52,7 +51,7 @@ changelog = "https://github.com/ansible-community/molecule-plugins/releases"
|
|
|
52
51
|
[project.optional-dependencies]
|
|
53
52
|
test = [
|
|
54
53
|
"pytest-helpers-namespace >= 2019.1.8",
|
|
55
|
-
"molecule[test] >=
|
|
54
|
+
"molecule[test] >= 25.1.0"
|
|
56
55
|
]
|
|
57
56
|
azure = []
|
|
58
57
|
docker = [
|
|
@@ -66,7 +65,10 @@ docker = [
|
|
|
66
65
|
"requests" # also required by docker
|
|
67
66
|
]
|
|
68
67
|
ec2 = []
|
|
69
|
-
gce = [
|
|
68
|
+
gce = [
|
|
69
|
+
"requests >= 2.31.0",
|
|
70
|
+
"google-auth >= 2.28.2",
|
|
71
|
+
]
|
|
70
72
|
podman = [
|
|
71
73
|
]
|
|
72
74
|
selinux = [
|
|
@@ -86,7 +88,7 @@ openstack = [
|
|
|
86
88
|
]
|
|
87
89
|
|
|
88
90
|
[tool.ruff]
|
|
89
|
-
ignore = [
|
|
91
|
+
lint.ignore = [
|
|
90
92
|
"E501", # we use black
|
|
91
93
|
# we deliberately ignore these:
|
|
92
94
|
"EM102",
|
|
@@ -98,6 +100,7 @@ ignore = [
|
|
|
98
100
|
"B028",
|
|
99
101
|
"BLE",
|
|
100
102
|
"C901",
|
|
103
|
+
"COM812",
|
|
101
104
|
"D",
|
|
102
105
|
"DTZ",
|
|
103
106
|
"FBT",
|
|
@@ -116,15 +119,15 @@ ignore = [
|
|
|
116
119
|
"FIX002",
|
|
117
120
|
"TRY",
|
|
118
121
|
]
|
|
119
|
-
select = ["ALL"]
|
|
122
|
+
lint.select = ["ALL"]
|
|
120
123
|
target-version = "py39"
|
|
121
124
|
# Same as Black.
|
|
122
125
|
line-length = 88
|
|
123
126
|
|
|
124
|
-
[tool.ruff.flake8-pytest-style]
|
|
127
|
+
[tool.ruff.lint.flake8-pytest-style]
|
|
125
128
|
parametrize-values-type = "tuple"
|
|
126
129
|
|
|
127
|
-
[tool.ruff.isort]
|
|
130
|
+
[tool.ruff.lint.isort]
|
|
128
131
|
known-first-party = ["molecule_plugins"]
|
|
129
132
|
|
|
130
133
|
[project.entry-points."molecule.driver"]
|
|
@@ -90,10 +90,10 @@ class Azure(Driver):
|
|
|
90
90
|
connection_options = " ".join(self.ssh_connection_options)
|
|
91
91
|
|
|
92
92
|
return (
|
|
93
|
-
"ssh {
|
|
94
|
-
"-l {
|
|
95
|
-
"-p {
|
|
96
|
-
"-i {
|
|
93
|
+
"ssh {address} "
|
|
94
|
+
"-l {user} "
|
|
95
|
+
"-p {port} "
|
|
96
|
+
"-i {identity_file} "
|
|
97
97
|
f"{connection_options}"
|
|
98
98
|
)
|
|
99
99
|
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
# DEALINGS IN THE SOFTWARE.
|
|
20
20
|
"""Docker Driver Module."""
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
import os
|
|
24
23
|
|
|
25
24
|
from molecule import logger
|
|
@@ -119,6 +118,8 @@ class Docker(Driver):
|
|
|
119
118
|
restart_retries: 1
|
|
120
119
|
buildargs:
|
|
121
120
|
http_proxy: http://proxy.example.com:8080/
|
|
121
|
+
cache_from:
|
|
122
|
+
- registry.example.com/example/example:main
|
|
122
123
|
|
|
123
124
|
If specifying the `CMD`_ directive in your ``Dockerfile.j2`` or consuming a
|
|
124
125
|
built image which declares a ``CMD`` directive, then you must set
|
|
@@ -253,7 +254,11 @@ class Docker(Driver):
|
|
|
253
254
|
self._passed_sanity = True
|
|
254
255
|
|
|
255
256
|
def reset(self):
|
|
256
|
-
|
|
257
|
+
# maybe use self.sanity_check instead?
|
|
258
|
+
try:
|
|
259
|
+
import docker
|
|
260
|
+
except ImportError:
|
|
261
|
+
return
|
|
257
262
|
|
|
258
263
|
client = docker.from_env()
|
|
259
264
|
for c in client.containers.list(filters={"label": "owner=molecule"}):
|
|
@@ -270,4 +275,4 @@ class Docker(Driver):
|
|
|
270
275
|
def required_collections(self) -> dict[str, str]:
|
|
271
276
|
"""Return collections dict containing names and versions required."""
|
|
272
277
|
# https://galaxy.ansible.com/community/docker
|
|
273
|
-
return {"community.docker": "3.
|
|
278
|
+
return {"community.docker": "3.10.2", "ansible.posix": "1.4.0"}
|
{molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/create.yml
RENAMED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
|
|
28
28
|
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
|
|
29
29
|
with_items: "{{ molecule_yml.platforms }}"
|
|
30
|
+
loop_control:
|
|
31
|
+
label: "{{ item.registry.url | default(item.name) }}"
|
|
30
32
|
when:
|
|
31
33
|
- item.registry is defined
|
|
32
34
|
- item.registry.url is defined and item.registry.url
|
|
@@ -38,6 +40,8 @@
|
|
|
38
40
|
ansible.builtin.stat:
|
|
39
41
|
path: "{{ molecule_scenario_directory + '/' + (item.dockerfile | default('Dockerfile.j2')) }}"
|
|
40
42
|
loop: "{{ molecule_yml.platforms }}"
|
|
43
|
+
loop_control:
|
|
44
|
+
label: "{{ item.name }}"
|
|
41
45
|
register: dockerfile_stats
|
|
42
46
|
|
|
43
47
|
- name: Create Dockerfiles from image names
|
|
@@ -52,6 +56,7 @@
|
|
|
52
56
|
mode: "0600"
|
|
53
57
|
loop: "{{ molecule_yml.platforms }}"
|
|
54
58
|
loop_control:
|
|
59
|
+
label: "{{ item.name }}"
|
|
55
60
|
index_var: i
|
|
56
61
|
when: not item.pre_build_image | default(false)
|
|
57
62
|
register: platforms
|
|
@@ -68,6 +73,7 @@
|
|
|
68
73
|
- "--exclude=molecule.yml"
|
|
69
74
|
loop: "{{ molecule_yml.platforms }}"
|
|
70
75
|
loop_control:
|
|
76
|
+
label: "{{ item.name }}"
|
|
71
77
|
index_var: i
|
|
72
78
|
when: not item.pre_build_image | default(false)
|
|
73
79
|
delegate_to: localhost
|
|
@@ -81,6 +87,8 @@
|
|
|
81
87
|
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
|
|
82
88
|
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
|
|
83
89
|
with_items: "{{ platforms.results }}"
|
|
90
|
+
loop_control:
|
|
91
|
+
label: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
|
84
92
|
when:
|
|
85
93
|
- not item.pre_build_image | default(false)
|
|
86
94
|
register: docker_images
|
|
@@ -104,6 +112,7 @@
|
|
|
104
112
|
network: "{{ item.item.network_mode | default(omit) }}"
|
|
105
113
|
args: "{{ item.item.buildargs | default(omit) }}"
|
|
106
114
|
platform: "{{ item.item.platform | default(omit) }}"
|
|
115
|
+
cache_from: "{{ item.item.cache_from | default(omit) }}"
|
|
107
116
|
name: "molecule_local/{{ item.item.image }}"
|
|
108
117
|
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
|
109
118
|
cacert_path: "{{ item.cacert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/ca.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
|
|
@@ -128,6 +137,8 @@
|
|
|
128
137
|
combine({item.name: item.command | default('bash -c "while true; do sleep 10000; done"')})
|
|
129
138
|
}}
|
|
130
139
|
with_items: "{{ molecule_yml.platforms }}"
|
|
140
|
+
loop_control:
|
|
141
|
+
label: "{{ item.name }}"
|
|
131
142
|
when: item.override_command | default(true)
|
|
132
143
|
|
|
133
144
|
- name: Create molecule instance(s)
|
|
@@ -199,3 +210,5 @@
|
|
|
199
210
|
until: docker_jobs.finished
|
|
200
211
|
retries: 300
|
|
201
212
|
with_items: "{{ server.results }}"
|
|
213
|
+
loop_control:
|
|
214
|
+
label: "{{ item.item.name }}"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# platforms supported as being managed by molecule/ansible, this does
|
|
10
10
|
# not mean molecule itself can run on them.
|
|
11
11
|
- image: alpine:edge
|
|
12
|
-
- image: quay.io/centos/centos:
|
|
12
|
+
- image: quay.io/centos/centos:stream9
|
|
13
13
|
- image: ubuntu:latest
|
|
14
14
|
- image: debian:latest
|
|
15
15
|
tags:
|
|
@@ -182,7 +182,7 @@ class EC2(Driver):
|
|
|
182
182
|
'"/u:{}" '
|
|
183
183
|
'"/p:{}" '
|
|
184
184
|
"/v:{} "
|
|
185
|
-
"/cert
|
|
185
|
+
"/cert:tofu "
|
|
186
186
|
"+clipboard "
|
|
187
187
|
"/grab-keyboard".format(
|
|
188
188
|
ansible_connection_options["ansible_user"],
|
|
@@ -195,10 +195,10 @@ class EC2(Driver):
|
|
|
195
195
|
connection_options = " ".join(self.ssh_connection_options)
|
|
196
196
|
|
|
197
197
|
return (
|
|
198
|
-
"ssh {
|
|
199
|
-
"-l {
|
|
200
|
-
"-p {
|
|
201
|
-
"-i {
|
|
198
|
+
"ssh {address} "
|
|
199
|
+
"-l {user} "
|
|
200
|
+
"-p {port} "
|
|
201
|
+
"-i {identity_file} "
|
|
202
202
|
f"{connection_options}"
|
|
203
203
|
)
|
|
204
204
|
|
|
@@ -94,10 +94,10 @@ class GCE(Driver):
|
|
|
94
94
|
connection_options = " ".join(self.ssh_connection_options)
|
|
95
95
|
|
|
96
96
|
return (
|
|
97
|
-
"ssh {
|
|
98
|
-
"-l {
|
|
99
|
-
"-p {
|
|
100
|
-
"-i {
|
|
97
|
+
"ssh {address} "
|
|
98
|
+
"-l {user} "
|
|
99
|
+
"-p {port} "
|
|
100
|
+
"-i {identity_file} "
|
|
101
101
|
f"{connection_options}"
|
|
102
102
|
)
|
|
103
103
|
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
subnetwork:
|
|
29
29
|
selfLink: "{{ gcp_snet }}"
|
|
30
30
|
access_configs: "{{ [{'name': 'instance_ip', 'type': 'ONE_TO_ONE_NAT'}] if molecule_yml.driver.external_access else [] }}"
|
|
31
|
+
tags: "{{ item.tags | default(omit) }}"
|
|
31
32
|
zone: "{{ item.zone | default(molecule_yml.driver.region + '-b') }}"
|
|
32
33
|
project: "{{ gcp_project_id }}"
|
|
33
34
|
scopes: "{{ molecule_yml.driver.scopes | default(['https://www.googleapis.com/auth/compute'], True) }}"
|
|
@@ -61,3 +62,7 @@
|
|
|
61
62
|
search_regex: SSH
|
|
62
63
|
delay: 10
|
|
63
64
|
loop: "{{ server.results }}"
|
|
65
|
+
register: waitfor
|
|
66
|
+
until: waitfor.failed == false
|
|
67
|
+
retries: 6
|
|
68
|
+
delay: 10
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
subnetwork:
|
|
21
21
|
selfLink: "{{ gcp_snet }}"
|
|
22
22
|
access_configs: "{{ [{'name': 'instance_ip', 'type': 'ONE_TO_ONE_NAT'}] if molecule_yml.driver.external_access else [] }}"
|
|
23
|
+
tags: "{{ item.tags | default(omit) }}"
|
|
23
24
|
zone: "{{ item.zone | default(molecule_yml.driver.region + '-b') }}"
|
|
24
25
|
project: "{{ gcp_project_id }}"
|
|
25
26
|
scopes: "{{ molecule_yml.driver.scopes | default(['https://www.googleapis.com/auth/compute'], True) }}"
|
|
@@ -50,6 +51,10 @@
|
|
|
50
51
|
host: "{{ item.networkInterfaces.0.accessConfigs.0.natIP if molecule_yml.driver.external_access else item.networkInterfaces.0.networkIP }}"
|
|
51
52
|
delay: 10
|
|
52
53
|
loop: "{{ server.results }}"
|
|
54
|
+
register: waitfor
|
|
55
|
+
until: waitfor.failed == false
|
|
56
|
+
retries: 6
|
|
57
|
+
delay: 10
|
|
53
58
|
|
|
54
59
|
- name: Prepare Windows User
|
|
55
60
|
ansible.builtin.script: >
|
|
@@ -102,6 +102,8 @@
|
|
|
102
102
|
image: "{{ item.image }}"
|
|
103
103
|
key_name: "{{ key_name }}"
|
|
104
104
|
flavor: "{{ item.flavor }}"
|
|
105
|
+
floating_ip_pools: "{{ item.floating_ip_pools if item.floating_ip_pools is defined and item.floating_ip_pools | length > 0 else omit }}"
|
|
106
|
+
auto_ip: "{{ item.auto_ip if item.auto_ip is defined else omit }}"
|
|
105
107
|
boot_from_volume: "{{ true if item.volume is defined and item.volume.size else false }}"
|
|
106
108
|
terminate_volume: "{{ true if item.volume is defined and item.volume.size else false }}"
|
|
107
109
|
volume_size: "{{ item.volume.size if item.volume is defined and item.volume.size else omit }}"
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
# DEALINGS IN THE SOFTWARE.
|
|
20
20
|
"""Podman Driver Module."""
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
import os
|
|
24
23
|
import warnings
|
|
24
|
+
from pathlib import Path
|
|
25
25
|
from shutil import which
|
|
26
26
|
|
|
27
27
|
from ansible_compat.runtime import Runtime
|
|
@@ -29,6 +29,7 @@ from packaging.version import Version
|
|
|
29
29
|
|
|
30
30
|
from molecule import logger, util
|
|
31
31
|
from molecule.api import Driver, MoleculeRuntimeWarning
|
|
32
|
+
from molecule.app import get_app
|
|
32
33
|
from molecule.constants import RC_SETUP_ERROR
|
|
33
34
|
from molecule.util import sysexit_with_message
|
|
34
35
|
|
|
@@ -243,3 +244,9 @@ class Podman(Driver):
|
|
|
243
244
|
def required_collections(self) -> dict[str, str]:
|
|
244
245
|
"""Return collections dict containing names and versions required."""
|
|
245
246
|
return {"containers.podman": "1.7.0", "ansible.posix": "1.3.0"}
|
|
247
|
+
|
|
248
|
+
def reset(self):
|
|
249
|
+
# keep `--filter` in sync with playbooks/create.yml
|
|
250
|
+
get_app(Path()).run_command(
|
|
251
|
+
["podman", "rm", "--force", "--filter=label=owner=molecule"]
|
|
252
|
+
)
|
{molecule-plugins-23.5.3 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/create.yml
RENAMED
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
{% if item.item.pull is defined %}--pull={{ item.item.pull }}{% endif %}
|
|
78
78
|
file: "{{ item.dest }}"
|
|
79
79
|
name: "molecule_local/{{ item.item.image }}"
|
|
80
|
+
executable: "{{ podman_exec }}"
|
|
80
81
|
path: "{{ molecule_scenario_directory }}"
|
|
81
82
|
pull: "{{ item.item.pull | default(omit) }}"
|
|
82
83
|
loop: "{{ platforms.results }}"
|
|
@@ -145,9 +146,11 @@
|
|
|
145
146
|
etc_hosts: "{{ item.etc_hosts | default(omit) }}"
|
|
146
147
|
executable: "{{ podman_exec }}"
|
|
147
148
|
expose: "{{ item.exposed_ports | default(omit) }}"
|
|
148
|
-
hostname: "{{ item.hostname | default(
|
|
149
|
+
hostname: "{{ item.hostname | default(item.name) }}"
|
|
149
150
|
image: "{{ item.pre_build_image | default(false) | ternary('', 'molecule_local/') }}{{ item.image }}"
|
|
150
151
|
ip: "{{ item.ip | default(omit) }}"
|
|
152
|
+
label:
|
|
153
|
+
owner: "molecule" # keep in sync with ../driver.py:Podman.reset()
|
|
151
154
|
network: "{{ item.network | default(omit) }}"
|
|
152
155
|
pid: "{{ item.pid_mode | default(omit) }}"
|
|
153
156
|
privileged: "{{ item.privileged | default(omit) }}"
|