Skip to content

Commit

Permalink
docker_container: cgroup_parent (#59)
Browse files Browse the repository at this point in the history
* Document that the Docker SDK for Python is used by the module.

* Allow to specify cgroup_parent for container.
  • Loading branch information
felixfontein authored Jan 3, 2021
1 parent e4b747d commit c7a3d9f
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/59-docker_container-cgroup-parent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minor_changes:
- "docker_container - support specifying ``cgroup_parent`` (https://github.com/ansible-collections/community.docker/issues/6, https://github.com/ansible-collections/community.docker/pull/59)."
6 changes: 6 additions & 0 deletions plugins/doc_fragments/docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ class ModuleDocFragment(object):

DOCKER_PY_1_DOCUMENTATION = r'''
options: {}
notes:
- This module uses the L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) to
communicate with the Docker daemon.
requirements:
- "Docker SDK for Python: Please note that the L(docker-py,https://pypi.org/project/docker-py/)
Python module has been superseded by L(docker,https://pypi.org/project/docker/)
Expand All @@ -127,6 +130,9 @@ class ModuleDocFragment(object):

DOCKER_PY_2_DOCUMENTATION = r'''
options: {}
notes:
- This module uses the L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) to
communicate with the Docker daemon.
requirements:
- "Python >= 2.7"
- "Docker SDK for Python: Please note that the L(docker-py,https://pypi.org/project/docker-py/)
Expand Down
8 changes: 8 additions & 0 deletions plugins/modules/docker_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@
- List of capabilities to drop from the container.
type: list
elements: str
cgroup_parent:
description:
- Specify the parent cgroup for the container.
type: str
version_added: 1.1.0
cleanup:
description:
- Use with I(detach=false) to remove the container after successful execution.
Expand Down Expand Up @@ -1596,6 +1601,7 @@ def _host_config(self):
publish_all_ports='publish_all_ports',
links='links',
privileged='privileged',
cgroup_parent='cgroup_parent',
dns='dns_servers',
dns_opt='dns_opts',
dns_search='dns_search_domains',
Expand Down Expand Up @@ -2190,6 +2196,7 @@ def has_different_configuration(self, image):
interactive=config.get('OpenStdin'),
capabilities=host_config.get('CapAdd'),
cap_drop=host_config.get('CapDrop'),
cgroup_parent=host_config.get('CgroupParent'),
expected_devices=host_config.get('Devices'),
dns_servers=host_config.get('Dns'),
dns_opts=host_config.get('DnsOptions'),
Expand Down Expand Up @@ -3389,6 +3396,7 @@ def main():
blkio_weight=dict(type='int'),
capabilities=dict(type='list', elements='str'),
cap_drop=dict(type='list', elements='str'),
cgroup_parent=dict(type='str'),
cleanup=dict(type='bool', default=False),
command=dict(type='raw'),
comparisons=dict(type='dict'),
Expand Down
34 changes: 34 additions & 0 deletions tests/integration/targets/docker_container/tasks/tests/options.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,40 @@
- capabilities_3 is not changed
- capabilities_4 is changed

####################################################################
## cgroup_parent ###################################################
####################################################################

- name: cgroup_parent
docker_container:
image: "{{ docker_test_image_alpine }}"
command: '/bin/sh -c "sleep 10m"'
name: "{{ cname }}"
state: started
cgroup_parent: ''
register: cgroup_parent_1

- name: cgroup_parent (idempotency)
docker_container:
image: "{{ docker_test_image_alpine }}"
command: '/bin/sh -c "sleep 10m"'
name: "{{ cname }}"
state: started
cgroup_parent: ''
register: cgroup_parent_2

- name: cleanup
docker_container:
name: "{{ cname }}"
state: absent
force_kill: yes
diff: no

- assert:
that:
- cgroup_parent_1 is changed
- cgroup_parent_2 is not changed

####################################################################
## command #########################################################
####################################################################
Expand Down

0 comments on commit c7a3d9f

Please sign in to comment.