83e584577a
* docker_container: Honour stop_timeout when creating docker containers (#43814) * Adjusting description to what actually happens. See docker-py changelog for 2.7.0: 'APIClient.stop will no longer override the stop_timeout value present in the container’s configuration.' * Add a test whether stop_timeout can be configured for the container. * Added changelog. * Integrate with comparisons (by default, ignore stop_timeout value for restarts; will be configurable with PR ansible/ansible#44789). * Fix config change code and tests (#2) * Improving wildcard test. * Using correct config.
449 lines
10 KiB
YAML
449 lines
10 KiB
YAML
---
|
|
- name: Registering container name
|
|
set_fact:
|
|
cname: "{{ cname_prefix ~ '-comparisons' }}"
|
|
- name: Registering container name
|
|
set_fact:
|
|
cnames: "{{ cnames }} + [cname]"
|
|
|
|
####################################################################
|
|
## value ###########################################################
|
|
####################################################################
|
|
|
|
- name: value
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.com
|
|
register: value_1
|
|
|
|
- name: value (change, ignore)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.org
|
|
comparisons:
|
|
hostname: ignore
|
|
register: value_2
|
|
|
|
- name: value (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.org
|
|
stop_timeout: 1
|
|
comparisons:
|
|
hostname: strict
|
|
register: value_3
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- value_1 is changed
|
|
- value_2 is not changed
|
|
- value_3 is changed
|
|
|
|
####################################################################
|
|
## list ############################################################
|
|
####################################################################
|
|
|
|
- name: list
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
dns_servers:
|
|
- 1.1.1.1
|
|
- 8.8.8.8
|
|
register: list_1
|
|
|
|
- name: list (change, ignore)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
dns_servers:
|
|
- 9.9.9.9
|
|
comparisons:
|
|
dns_servers: ignore
|
|
register: list_2
|
|
|
|
- name: list (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
dns_servers:
|
|
- 9.9.9.9
|
|
comparisons:
|
|
dns_servers: strict
|
|
stop_timeout: 1
|
|
register: list_3
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- list_1 is changed
|
|
- list_2 is not changed
|
|
- list_3 is changed
|
|
|
|
####################################################################
|
|
## set #############################################################
|
|
####################################################################
|
|
|
|
- name: set
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
groups:
|
|
- 1010
|
|
- 1011
|
|
register: set_1
|
|
|
|
- name: set (change, ignore)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
groups:
|
|
- 1010
|
|
- 1011
|
|
- 1012
|
|
comparisons:
|
|
groups: ignore
|
|
register: set_2
|
|
|
|
- name: set (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
groups:
|
|
- 1010
|
|
- 1011
|
|
- 1012
|
|
comparisons:
|
|
groups: allow_more_present
|
|
stop_timeout: 1
|
|
register: set_3
|
|
|
|
- name: set (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
groups:
|
|
- 1010
|
|
- 1012
|
|
comparisons:
|
|
groups: allow_more_present
|
|
stop_timeout: 1
|
|
register: set_4
|
|
|
|
- name: set (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
groups:
|
|
- 1010
|
|
- 1012
|
|
comparisons:
|
|
groups: strict
|
|
stop_timeout: 1
|
|
register: set_5
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- set_1 is changed
|
|
- set_2 is not changed
|
|
- set_3 is changed
|
|
- set_4 is not changed
|
|
- set_5 is changed
|
|
|
|
####################################################################
|
|
## set(dict) #######################################################
|
|
####################################################################
|
|
|
|
- name: set(dict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
devices:
|
|
- "/dev/random:/dev/virt-random:rwm"
|
|
- "/dev/urandom:/dev/virt-urandom:rwm"
|
|
register: set_dict_1
|
|
|
|
- name: set(dict) (change, ignore)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
devices:
|
|
- "/dev/random:/dev/virt-random:rwm"
|
|
- "/dev/urandom:/dev/virt-urandom:rwm"
|
|
- "/dev/null:/dev/virt-null:rwm"
|
|
comparisons:
|
|
devices: ignore
|
|
register: set_dict_2
|
|
|
|
- name: set(dict) (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
devices:
|
|
- "/dev/random:/dev/virt-random:rwm"
|
|
- "/dev/urandom:/dev/virt-urandom:rwm"
|
|
- "/dev/null:/dev/virt-null:rwm"
|
|
comparisons:
|
|
devices: allow_more_present
|
|
stop_timeout: 1
|
|
register: set_dict_3
|
|
|
|
- name: set(dict) (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
devices:
|
|
- "/dev/random:/dev/virt-random:rwm"
|
|
- "/dev/null:/dev/virt-null:rwm"
|
|
comparisons:
|
|
devices: allow_more_present
|
|
stop_timeout: 1
|
|
register: set_dict_4
|
|
|
|
- name: set(dict) (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
devices:
|
|
- "/dev/random:/dev/virt-random:rwm"
|
|
- "/dev/null:/dev/virt-null:rwm"
|
|
comparisons:
|
|
devices: strict
|
|
stop_timeout: 1
|
|
register: set_dict_5
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- set_dict_1 is changed
|
|
- set_dict_2 is not changed
|
|
- set_dict_3 is changed
|
|
- set_dict_4 is not changed
|
|
- set_dict_5 is changed
|
|
|
|
####################################################################
|
|
## dict ############################################################
|
|
####################################################################
|
|
|
|
- name: dict
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
register: dict_1
|
|
|
|
- name: dict (change, ignore)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
labels: ignore
|
|
register: dict_2
|
|
|
|
- name: dict (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
labels: allow_more_present
|
|
stop_timeout: 1
|
|
register: dict_3
|
|
|
|
- name: dict (change, allow_more_present)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
labels: allow_more_present
|
|
stop_timeout: 1
|
|
register: dict_4
|
|
|
|
- name: dict (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
labels: strict
|
|
stop_timeout: 1
|
|
register: dict_5
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- dict_1 is changed
|
|
- dict_2 is not changed
|
|
- dict_3 is changed
|
|
- dict_4 is not changed
|
|
- dict_5 is changed
|
|
|
|
####################################################################
|
|
## wildcard ########################################################
|
|
####################################################################
|
|
|
|
- name: Pull hello-world image to make sure wildcard_2 test succeeds
|
|
# If the image isn't there, it will pull it and return 'changed'.
|
|
docker_image:
|
|
name: hello-world
|
|
pull: true
|
|
|
|
- name: wildcard
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.com
|
|
stop_timeout: 1
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
ansible.test.3: ansible
|
|
register: wildcard_1
|
|
|
|
- name: wildcard (change, ignore)
|
|
docker_container:
|
|
image: hello-world
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.org
|
|
stop_timeout: 2
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.4: ignore
|
|
comparisons:
|
|
'*': ignore
|
|
register: wildcard_2
|
|
|
|
- name: wildcard (change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.org
|
|
stop_timeout: 1
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
'*': strict
|
|
register: wildcard_3
|
|
|
|
- name: wildcard (no change, strict)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
hostname: example.org
|
|
stop_timeout: 1
|
|
labels:
|
|
ansible.test.1: hello
|
|
ansible.test.2: world
|
|
ansible.test.3: ansible
|
|
comparisons:
|
|
'*': strict
|
|
register: wildcard_4
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
|
|
- assert:
|
|
that:
|
|
- wildcard_1 is changed
|
|
- wildcard_2 is not changed
|
|
- wildcard_3 is changed
|
|
- wildcard_4 is not changed
|