summaryrefslogtreecommitdiff
path: root/test/integration/targets/docker_secret/tasks/test_secrets.yml
blob: 603eeae87e5110d2597fd6369f97c4ff0d27fbef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
- name: Install Python requirements
  pip:
    state: present 
    name: "{{ item }}"
  with_items:
    - docker>=2.1.0

- name: Check if already in swarm
  shell: docker node ls 2>&1 | grep 'docker swarm init'
  register: output
  ignore_errors: yes 

- name: Enable swarm mode
  command: docker swarm init
  when: output.rc == 0
  notify: disable_swarm 

- name: Parameter name should be required
  docker_secret:
    state: present
  ignore_errors: yes
  register: output

- name: assert failure when called with no name
  assert:
    that:
       - 'output.failed'
       - 'output.msg == "missing required arguments: name"'

- name: Test parameters
  docker_secret:
    name: foo
    state: present
  ignore_errors: yes
  register: output

- name: assert failure when called with no data
  assert:
    that:
       - 'output.failed'
       - 'output.msg == "state is present but all of the following are missing: data"'

- name: Create secret
  docker_secret:
    name: db_password
    data: opensesame!
    state: present
  register: output

- name: Create variable secret_id 
  set_fact:
    secret_id: "{{ output.secret_id }}"

- name: Inspect secret
  command: "docker secret inspect {{ secret_id }}"
  register: inspect

- debug: var=inspect

- name: assert secret creation succeeded
  assert:
    that:
       - "'db_password' in inspect.stdout"
       - "'ansible_key' in inspect.stdout"

- name: Create secret again
  docker_secret:
    name: db_password
    data: opensesame!
    state: present
  register: output

- name: assert create secret is idempotent
  assert:
    that:
       - not output.changed

- name: Update secret
  docker_secret:
    name: db_password
    data: newpassword!
    state: present
  register: output

- name: assert secret was updated
  assert:
    that:
       - output.changed
       - output.secret_id != secret_id

- name: Remove secret
  docker_secret:
    name: db_password
    state: absent

- name: Check that secret is removed
  command: "docker secret inspect {{ secret_id }}"
  register: output
  ignore_errors: yes

- name: assert secret was removed 
  assert:
    that:
      - output.failed