From ea9702346672c2586cdd50261d1cf1ea868f9dbd Mon Sep 17 00:00:00 2001 From: Logan V <1175417+logan2211@users.noreply.github.com> Date: Wed, 27 Feb 2019 13:45:04 -0600 Subject: [PATCH] Add purge_networks arg to docker driver (#1543) Users building containers in isolated docker networks may not want the default docker bridge network attached. Signed-off-by: Logan V --- molecule/driver/docker.py | 1 + molecule/model/schema_v2.py | 3 +++ molecule/provisioner/ansible/playbooks/docker/create.yml | 1 + test/resources/playbooks/docker/create.yml | 1 + test/unit/model/v2/test_platforms_section.py | 4 ++++ 5 files changed, 10 insertions(+) diff --git a/molecule/driver/docker.py b/molecule/driver/docker.py index bda0489db..6052b3f4d 100644 --- a/molecule/driver/docker.py +++ b/molecule/driver/docker.py @@ -82,6 +82,7 @@ class Docker(base.Base): - name: foo - name: bar network_mode: host + purge_networks: true docker_host: tcp://localhost:12376 env: FOO: bar diff --git a/molecule/model/schema_v2.py b/molecule/model/schema_v2.py index a1f61005e..f66b65267 100644 --- a/molecule/model/schema_v2.py +++ b/molecule/model/schema_v2.py @@ -725,6 +725,9 @@ def pre_validate_base_schema(env, keep_string): 'network_mode': { 'type': 'string', }, + 'purge_networks': { + 'type': 'boolean', + } } } }, diff --git a/molecule/provisioner/ansible/playbooks/docker/create.yml b/molecule/provisioner/ansible/playbooks/docker/create.yml index ce5c68343..3c80a5be1 100644 --- a/molecule/provisioner/ansible/playbooks/docker/create.yml +++ b/molecule/provisioner/ansible/playbooks/docker/create.yml @@ -82,6 +82,7 @@ ulimits: "{{ item.ulimits | default(omit) }}" networks: "{{ item.networks | default(omit) }}" network_mode: "{{ item.network_mode | default(omit) }}" + purge_networks: "{{ item.purge_networks | default(omit) }}" dns_servers: "{{ item.dns_servers | default(omit) }}" env: "{{ item.env | default(omit) }}" restart_policy: "{{ item.restart_policy | default(omit) }}" diff --git a/test/resources/playbooks/docker/create.yml b/test/resources/playbooks/docker/create.yml index fcef3d41a..41d5080cf 100644 --- a/test/resources/playbooks/docker/create.yml +++ b/test/resources/playbooks/docker/create.yml @@ -82,6 +82,7 @@ ulimits: "{{ item.ulimits | default(omit) }}" networks: "{{ item.networks | default(omit) }}" network_mode: "{{ item.network_mode | default(omit) }}" + purge_networks: "{{ item.purge_networks | default(omit) }}" dns_servers: "{{ item.dns_servers | default(omit) }}" env: "{{ item.env | default(omit) }}" restart_policy: "{{ item.restart_policy | default(omit) }}" diff --git a/test/unit/model/v2/test_platforms_section.py b/test/unit/model/v2/test_platforms_section.py index 7cdbd3d6f..f5a5c28f0 100644 --- a/test/unit/model/v2/test_platforms_section.py +++ b/test/unit/model/v2/test_platforms_section.py @@ -101,6 +101,8 @@ def _model_platforms_docker_section_data(): ], 'network_mode': 'mode', + 'purge_networks': + True, 'foo': 'bar' }] @@ -167,6 +169,7 @@ def _model_platforms_docker_errors_section_data(): }, ], 'network_mode': int(), + 'purge_networks': int(), }] } @@ -221,6 +224,7 @@ def test_platforms_docker_has_errors(_config): }] }], 'network_mode': ['must be of string type'], + 'purge_networks': ['must be of boolean type'], 'ulimits': [{ 0: ['must be of string type'] }],