From b9d22b901dabcc5d42d06693879560aee7b58bef Mon Sep 17 00:00:00 2001 From: ksagle77 <34070189+ksagle77@users.noreply.github.com> Date: Mon, 10 Feb 2020 13:01:13 -0500 Subject: [PATCH] Allow default network mode, as required for windows containers. (#59597) * Allow default network option for network_mode, required for windows containers. * Add change fragment and param description * Update changelogs/fragments/59597-ecs-allow_default_network_mode.yml Co-Authored-By: Mark Chappell * Update lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py Co-Authored-By: Mark Chappell * Correct descriptions. Remove whitespaces. * Remove empty line. * Add single space after comma * Update lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py Co-Authored-By: Mark Chappell * Update lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py Co-Authored-By: Mark Chappell * Update lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py Co-Authored-By: Mark Chappell Co-authored-by: kevinsagle <44478308+kevinsagle@users.noreply.github.com> Co-authored-by: Mark Chappell --- .../fragments/59597-ecs-allow_default_network_mode.yml | 2 ++ lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/59597-ecs-allow_default_network_mode.yml diff --git a/changelogs/fragments/59597-ecs-allow_default_network_mode.yml b/changelogs/fragments/59597-ecs-allow_default_network_mode.yml new file mode 100644 index 00000000000..3f2cb10d735 --- /dev/null +++ b/changelogs/fragments/59597-ecs-allow_default_network_mode.yml @@ -0,0 +1,2 @@ +minor_changes: + - ecs_task_definition - Add network_mode=default to support Windows ECS tasks. \ No newline at end of file diff --git a/lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py b/lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py index a0571b5d815..77cdc52884a 100644 --- a/lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py +++ b/lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py @@ -58,9 +58,11 @@ options: description: - The Docker networking mode to use for the containers in the task. - C(awsvpc) mode was added in Ansible 2.5 + - Windows containers must use I(network_mode=default), which will utilize docker NAT networking. + - Setting I(network_mode=default) for a Linux container will use bridge mode. required: false default: bridge - choices: [ 'bridge', 'host', 'none', 'awsvpc' ] + choices: [ 'default', 'bridge', 'host', 'none', 'awsvpc' ] version_added: 2.3 type: str task_role_arn: @@ -265,10 +267,11 @@ class EcsTaskManager: params = dict( family=family, taskRoleArn=task_role_arn, - networkMode=network_mode, containerDefinitions=container_definitions, volumes=volumes ) + if network_mode != 'default': + params['networkMode'] = network_mode if cpu: params['cpu'] = cpu if memory: @@ -330,7 +333,7 @@ def main(): revision=dict(required=False, type='int'), force_create=dict(required=False, default=False, type='bool'), containers=dict(required=False, type='list'), - network_mode=dict(required=False, default='bridge', choices=['bridge', 'host', 'none', 'awsvpc'], type='str'), + network_mode=dict(required=False, default='bridge', choices=['default', 'bridge', 'host', 'none', 'awsvpc'], type='str'), task_role_arn=dict(required=False, default='', type='str'), execution_role_arn=dict(required=False, default='', type='str'), volumes=dict(required=False, type='list'),