ansible/test/integration/targets/docker_swarm_service/tasks/tests/configs.yml
Hannes Ljungberg 1b90e10cf0 docker_swarm_service: Make secret_id and config_id optional (#58299)
* Lookup secret id by name if not set

* Lookup config id by name if not set

* Add changelog fragment

* Remove usage of secret/config_id in examples

* Python 2.6 compat

* Extend secrets and configs tests
2019-06-27 22:24:34 +02:00

398 lines
11 KiB
YAML

---
- name: Registering container name
set_fact:
service_name: "{{ name_prefix ~ '-configs' }}"
config_name_1: "{{ name_prefix ~ '-configs-1' }}"
config_name_2: "{{ name_prefix ~ '-configs-2' }}"
- name: Registering container name
set_fact:
config_names: "{{ config_names + [config_name_1, config_name_2] }}"
- docker_config:
name: "{{ config_name_1 }}"
data: "hello"
state: present
register: "config_result_1"
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
- docker_config:
name: "{{ config_name_2 }}"
data: "test"
state: present
register: "config_result_2"
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
####################################################################
## configs #########################################################
####################################################################
- name: configs
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
filename: "/tmp/{{ config_name_1 }}.txt"
register: configs_1
ignore_errors: yes
- name: configs (idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_name: "{{ config_name_1 }}"
filename: "/tmp/{{ config_name_1 }}.txt"
register: configs_2
ignore_errors: yes
- name: configs (add)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
filename: "/tmp/{{ config_name_1 }}.txt"
- config_name: "{{ config_name_2 }}"
filename: "/tmp/{{ config_name_2 }}.txt"
register: configs_3
ignore_errors: yes
- name: configs (add idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_name: "{{ config_name_1 }}"
filename: "/tmp/{{ config_name_1 }}.txt"
- config_id: "{{ config_result_2.config_id|default('') }}"
config_name: "{{ config_name_2 }}"
filename: "/tmp/{{ config_name_2 }}.txt"
register: configs_4
ignore_errors: yes
- name: configs (add idempotency no id)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_name: "{{ config_name_1 }}"
filename: "/tmp/{{ config_name_1 }}.txt"
- config_name: "{{ config_name_2 }}"
filename: "/tmp/{{ config_name_2 }}.txt"
register: configs_5
ignore_errors: yes
- name: configs (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs: []
register: configs_6
ignore_errors: yes
- name: configs (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs: []
register: configs_7
ignore_errors: yes
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- configs_1 is changed
- configs_2 is not changed
- configs_3 is changed
- configs_4 is not changed
- configs_5 is not changed
- configs_6 is changed
- configs_7 is not changed
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
- assert:
that:
- configs_1 is failed
- "'Minimum version required' in configs_1.msg"
when: docker_api_version is version('1.30', '<') or docker_py_version is version('2.6.0', '<')
####################################################################
## configs (uid) ###################################################
####################################################################
- name: configs (uid int)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
uid: 1000
register: configs_1
ignore_errors: yes
- name: configs (uid int idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
uid: 1000
register: configs_2
ignore_errors: yes
- name: configs (uid int change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
uid: 1002
register: configs_3
ignore_errors: yes
- name: configs (uid str)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
uid: "1001"
register: configs_4
ignore_errors: yes
- name: configs (uid str idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
uid: "1001"
register: configs_5
ignore_errors: yes
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- configs_1 is changed
- configs_2 is not changed
- configs_3 is changed
- configs_4 is changed
- configs_5 is not changed
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
- assert:
that:
- configs_1 is failed
- "'Minimum version required' in configs_1.msg"
when: docker_api_version is version('1.30', '<') or docker_py_version is version('2.6.0', '<')
####################################################################
## configs (gid) ###################################################
####################################################################
- name: configs (gid int)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
gid: 1000
register: configs_1
ignore_errors: yes
- name: configs (gid int idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
gid: 1000
register: configs_2
ignore_errors: yes
- name: configs (gid int change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
gid: 1002
register: configs_3
ignore_errors: yes
- name: configs (gid str)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
gid: "1001"
register: configs_4
ignore_errors: yes
- name: configs (gid str idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
gid: "1001"
register: configs_5
ignore_errors: yes
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- configs_1 is changed
- configs_2 is not changed
- configs_3 is changed
- configs_4 is changed
- configs_5 is not changed
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
- assert:
that:
- configs_1 is failed
- "'Minimum version required' in configs_1.msg"
when: docker_api_version is version('1.30', '<') or docker_py_version is version('2.6.0', '<')
####################################################################
## configs (mode) ##################################################
####################################################################
- name: configs (mode)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
mode: 0600
register: configs_1
ignore_errors: yes
- name: configs (mode idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
mode: 0600
register: configs_2
ignore_errors: yes
- name: configs (mode change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
resolve_image: no
command: '/bin/sh -v -c "sleep 10m"'
configs:
- config_id: "{{ config_result_1.config_id|default('') }}"
config_name: "{{ config_name_1 }}"
mode: 0777
register: configs_3
ignore_errors: yes
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- configs_1 is changed
- configs_2 is not changed
- configs_3 is changed
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')
- assert:
that:
- configs_1 is failed
- "'Minimum version required' in configs_1.msg"
when: docker_api_version is version('1.30', '<') or docker_py_version is version('2.6.0', '<')
####################################################################
####################################################################
####################################################################
- name: Delete configs
docker_config:
name: "{{ config_name }}"
state: absent
force: yes
loop:
- "{{ config_name_1 }}"
- "{{ config_name_2 }}"
loop_control:
loop_var: config_name
ignore_errors: yes
when: docker_api_version is version('1.30', '>=') and docker_py_version is version('2.6.0', '>=')