Skip to content

Commit 203f06d

Browse files
mrbrandaossbarnea
andauthored
Adding molecule template based on driver.name (#4126)
In past when using `cookicuter` some molecule templates where straight forward to use delegated container drivers, such as `podman` and `docker`. Since it was gone, every time a new scenario is created it's needed to configure the templates again, by adding the image and the driver, also cleaning the files that will not be used by default such as `create.yml` and `destroy.yml` If we can just init the scenario with a basic template that just works as we had in version `5` would be great. Here I'm bringing back some of this functionality, e.g: ```bash ansible-galaxy collection init foo.example cd foo/example/roles ansible-galaxy role init bar cd bar molecule init scenario -d podman podman ``` This will create a `molecule.yml` as the following: ```yaml --- driver: name: podman platforms: - name: instance image: quay.io/centos/centos:stream8 pre_build_image: true ``` it will also create the molecule scenario with just the `molecule.yml` and the `converge.yml`. e.g: ```bash tree ./molecule/podman/ ./molecule/podman/ ├── converge.yml └── molecule.yml ``` If the scenario was any driver different than `podman`, `docker` or `containers` it will create the scenario with all the default templates from the current `data` structure, e.g: ```bash molecule init scenario tree ./molecule/ ./molecule/ ├── default │   ├── converge.yml │   ├── create.yml │   ├── destroy.yml │   └── molecule.yml ``` The final scenario tree, after the commands `molecule init scenario -d podman podman` and `molecule init scenario` will look like: ```bash tree ./molecule/ ./molecule/ ├── default │   ├── converge.yml │   ├── create.yml │   ├── destroy.yml │   └── molecule.yml └── podman ├── converge.yml └── molecule.yml ``` Fixes: #4128 Co-authored-by: Sorin Sbarnea <ssbarnea@redhat.com>
1 parent 82652e8 commit 203f06d

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

src/molecule/data/init-scenario.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@
3131
- templates/scenario/*.j2
3232
loop_control:
3333
label: "{{ dest_file | relpath }}"
34+
when:
35+
- ((driver_name in ['containers', 'docker', 'podman']) and
36+
(item | regex_search('create|destroy') is none) or
37+
(driver_name not in ['containers', 'docker', 'podman']))
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
---
2+
driver:
3+
name: {{ driver_name }}
24
platforms:
35
- name: instance
6+
{% if driver_name in ['containers', 'docker', 'podman'] %}
7+
image: quay.io/centos/centos:stream8
8+
pre_build_image: true
9+
{% else %}
410
# you might want to add your own variables here based on what provisioning
511
# you are doing like:
612
# image: quay.io/centos/centos:stream8
13+
{% endif %}

0 commit comments

Comments
 (0)