Skip to content
This repository was archived by the owner on Oct 15, 2020. It is now read-only.

Commit 5ae3e83

Browse files
committed
tests: update docker templates for Molecule 3.0.5
1 parent ceb703d commit 5ae3e83

File tree

3 files changed

+26
-72
lines changed

3 files changed

+26
-72
lines changed

molecule/_resources/create-docker.yml

Lines changed: 15 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
connection: local
55
gather_facts: false
66
no_log: "{{ molecule_no_log }}"
7-
vars:
8-
molecule_labels:
9-
owner: molecule
107
tasks:
118
- name: Apply global default parameters
129
set_fact:
@@ -30,29 +27,14 @@
3027
- item.registry.credentials is defined
3128
- item.registry.credentials.username is defined
3229

33-
- name: Check presence of custom Dockerfiles
34-
stat:
35-
path: "{{ molecule_scenario_directory + '/' + (item.dockerfile | default( 'Dockerfile.j2')) }}"
36-
loop: "{{ final_platforms }}"
37-
register: dockerfile_stats
38-
3930
- name: Create Dockerfiles from image names
40-
vars:
41-
# TODO(ssbarnea): expose module dir so it can also be used by plugins
42-
molecule_module_directory: "{{ playbook_dir + '/../../../..' }}"
4331
template:
44-
src: >-
45-
{%- if dockerfile_stats.results[i].stat.exists -%}
46-
{{ molecule_scenario_directory + '/' + (item.dockerfile | default( 'Dockerfile.j2')) }}
47-
{%- else -%}
48-
{{ molecule_module_directory + '/data/Dockerfile.j2' }}
49-
{%- endif -%}
32+
src: "{{ item.dockerfile | default('Dockerfile.j2') }}"
5033
dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
51-
loop: "{{ final_platforms }}"
52-
loop_control:
53-
index_var: i
34+
with_items: "{{ final_platforms }}"
5435
when: not item.pre_build_image | default(false)
5536
register: platforms
37+
no_log: item.failed
5638

5739
- name: Discover local Docker images
5840
docker_image_info:
@@ -63,11 +45,10 @@
6345
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
6446
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
6547
with_items: "{{ platforms.results }}"
66-
when:
67-
- not item.pre_build_image | default(false)
48+
when: not item.pre_build_image | default(false)
6849
register: docker_images
6950

70-
- name: Build an Ansible compatible image (new)
51+
- name: Build an Ansible compatible image
7152
when:
7253
- platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
7354
- not item.item.pre_build_image | default(false)
@@ -76,8 +57,6 @@
7657
path: "{{ molecule_ephemeral_directory }}"
7758
dockerfile: "{{ item.invocation.module_args.dest }}"
7859
pull: "{{ item.item.pull | default(true) }}"
79-
network: "{{ item.item.network_mode | default(omit) }}"
80-
args: "{{ item.item.buildargs | default(omit) }}"
8160
name: "molecule_local/{{ item.item.image }}"
8261
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
8362
cacert_path: "{{ item.cacert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/ca.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
@@ -86,6 +65,7 @@
8665
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
8766
force_source: "{{ item.item.force | default(true) }}"
8867
source: build
68+
buildargs: "{{ item.item.buildargs | default(omit) }}"
8969
with_items: "{{ platforms.results }}"
9070
loop_control:
9171
label: "molecule_local/{{ item.item.image }}"
@@ -96,24 +76,9 @@
9676
delay: 30
9777

9878
- name: Create docker network(s)
99-
docker_network:
100-
name: "{{ item }}"
101-
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
102-
cacert_path: "{{ item.cacert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/ca.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
103-
cert_path: "{{ item.cert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/cert.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
104-
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
105-
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
106-
labels: "{{ molecule_labels | combine(item.labels | default({})) }}"
107-
state: present
108-
# Duck: we need IPv6
109-
enable_ipv6: True
110-
ipam_config:
111-
# RFC 4193
112-
- subnet: fdd1:0:0:0::/64
113-
with_items: "{{ final_platforms | molecule_get_docker_networks }}"
114-
loop_control:
115-
label: "{{ item }}"
116-
no_log: false
79+
action: docker_network
80+
args: "{{ docker_network_defaults | default({}) | union(item) }}"
81+
with_items: "{{ final_platforms | molecule_get_docker_networks('present') }}"
11782

11883
- name: Determine the CMD directives
11984
set_fact:
@@ -132,45 +97,37 @@
13297
cert_path: "{{ item.cert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/cert.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
13398
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
13499
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
135-
hostname: "{{ item.hostname | default(item.name) | replace('@NAME@', item.name) }}"
100+
hostname: "{{ item.hostname | default(item.name) }}"
136101
image: "{{ item.pre_build_image | default(false) | ternary('', 'molecule_local/') }}{{ item.image }}"
137-
pull: "{{ item.pull | default(omit) }}"
102+
pull: "{{ item.pull | default (omit) }}"
138103
memory: "{{ item.memory | default(omit) }}"
104+
memory_swap: "{{ item.memory_swap | default(omit) }}"
139105
state: started
140106
recreate: false
141107
log_driver: json-file
142-
command: "{{ (command_directives_dict | default({}))[item.name] | default(omit) }}"
143108
user: "{{ item.user | default(omit) }}"
109+
command: "{{ (command_directives_dict | default({}))[item.name] | default(omit) }}"
144110
pid_mode: "{{ item.pid_mode | default(omit) }}"
145111
privileged: "{{ item.privileged | default(omit) }}"
146112
security_opts: "{{ item.security_opts | default(omit) }}"
147-
devices: "{{ item.devices | default(omit) }}"
148113
volumes: "{{ item.volumes | default(omit) }}"
149114
tmpfs: "{{ item.tmpfs | default(omit) }}"
150115
capabilities: "{{ item.capabilities | default(omit) }}"
151-
sysctls: "{{ item.sysctls | default(omit) }}"
152116
exposed_ports: "{{ item.exposed_ports | default(omit) }}"
153117
published_ports: "{{ item.published_ports | default(omit) }}"
154118
ulimits: "{{ item.ulimits | default(omit) }}"
155119
networks: "{{ item.networks | default(omit) }}"
156-
network_mode: "{{ item.network_mode | default(omit) }}"
157120
networks_cli_compatible: "{{ item.networks_cli_compatible | default(true) }}"
121+
network_mode: "{{ item.network_mode | default(omit) }}"
158122
purge_networks: "{{ item.purge_networks | default(omit) }}"
159123
dns_servers: "{{ item.dns_servers | default(omit) }}"
160124
etc_hosts: "{{ item.etc_hosts | default(omit) }}"
161125
env: "{{ item.env | default(omit) }}"
162126
restart_policy: "{{ item.restart_policy | default(omit) }}"
163127
restart_retries: "{{ item.restart_retries | default(omit) }}"
164-
tty: "{{ item.tty | default(omit) }}"
165-
labels: "{{ molecule_labels | combine(item.labels | default({})) }}"
166128
container_default_behavior: "{{ item.container_default_behavior | default('compatibility' if ansible_version.full is version_compare('2.10', '>=') else omit) }}"
167-
# Duck: missing parameters
168-
dns_search_domains: "{{ item.dns_search_domains | default(omit) }}"
169129
register: server
170130
with_items: "{{ final_platforms }}"
171-
loop_control:
172-
label: "{{ item.name }}"
173-
no_log: false
174131
async: 7200
175132
poll: 0
176133

@@ -181,3 +138,4 @@
181138
until: docker_jobs.finished
182139
retries: 300
183140
with_items: "{{ server.results }}"
141+
no_log: item.failed

molecule/_resources/destroy-docker.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@
2424
container_default_behavior: "{{ item.container_default_behavior | default('compatibility' if ansible_version.full is version_compare('2.10', '>=') else omit) }}"
2525
register: server
2626
with_items: "{{ final_platforms }}"
27-
loop_control:
28-
label: "{{ item.name }}"
29-
no_log: false
3027
async: 7200
3128
poll: 0
3229

@@ -37,17 +34,9 @@
3734
until: docker_jobs.finished
3835
retries: 300
3936
with_items: "{{ server.results }}"
37+
no_log: item.failed
4038

4139
- name: Delete docker network(s)
42-
docker_network:
43-
name: "{{ item }}"
44-
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
45-
cacert_path: "{{ item.cacert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/ca.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
46-
cert_path: "{{ item.cert_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/cert.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
47-
key_path: "{{ item.key_path | default((lookup('env', 'DOCKER_CERT_PATH') + '/key.pem') if lookup('env', 'DOCKER_CERT_PATH') else omit) }}"
48-
tls_verify: "{{ item.tls_verify | default(lookup('env', 'DOCKER_TLS_VERIFY')) or false }}"
49-
state: absent
50-
with_items: "{{ final_platforms | molecule_get_docker_networks }}"
51-
loop_control:
52-
label: "{{ item }}"
53-
no_log: false
40+
action: docker_network
41+
args: "{{ docker_network_defaults | default({}) | union(item) }}"
42+
with_items: "{{ final_platforms | molecule_get_docker_networks('absent') }}"

molecule/_resources/group_vars/all/common.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ platform_base:
1616
dns_search_domains:
1717
- example.com
1818

19+
docker_network_defaults:
20+
# Duck: we need IPv6
21+
enable_ipv6: True
22+
ipam_config:
23+
# RFC 4193
24+
- subnet: fdd1:0:0:0::/64
25+
1926
# TODO: readd yum update when Docker cgroup bug is fixed
2027
# TODO: btw why is there no dnf update while there's an equivalent in all other distros?
2128
image_setup: |

0 commit comments

Comments
 (0)