community.docker/tests/integration/targets/docker_swarm/tasks/tests/options-ca.yml
2021-10-17 16:04:48 +02:00

129 lines
4.2 KiB
YAML

- debug:
msg: Running tests/options-ca.yml
- name: options-ca
when: cryptography_version.stdout is version('1.6', '>=')
block:
- name: Generate privatekey
loop:
- key1
- key2
loop_control:
loop_var: key
community.crypto.openssl_privatekey:
path: '{{ remote_tmp_dir }}/ansible_{{ key }}.key'
size: 2048
mode: '0666'
- name: Generate CSR
loop:
- key1
- key2
loop_control:
loop_var: key
community.crypto.openssl_csr:
path: '{{ remote_tmp_dir }}/ansible_{{ key }}.csr'
privatekey_path: '{{ remote_tmp_dir }}/ansible_{{ key }}.key'
basic_constraints:
- CA:TRUE
key_usage:
- keyCertSign
- name: Generate self-signed certificate
loop:
- key1
- key2
loop_control:
loop_var: key
community.crypto.x509_certificate:
path: '{{ remote_tmp_dir }}/ansible_{{ key }}.pem'
privatekey_path: '{{ remote_tmp_dir }}/ansible_{{ key }}.key'
csr_path: '{{ remote_tmp_dir }}/ansible_{{ key }}.csr'
provider: selfsigned
- name: Load certificates
slurp:
src: '{{ remote_tmp_dir }}/{{ item }}'
loop:
- ansible_key1.pem
- ansible_key2.pem
register: ansible_certificates
- name: Load certificate keys
slurp:
src: '{{ remote_tmp_dir }}/{{ item }}'
loop:
- ansible_key1.key
- ansible_key2.key
register: ansible_keys
- name: signing_ca_cert and signing_ca_key (check mode)
docker_swarm:
advertise_addr: '{{ansible_default_ipv4.address | default("127.0.0.1")}}'
state: present
signing_ca_cert: '{{ ansible_certificates.results[0].content | b64decode }}'
signing_ca_key: '{{ ansible_keys.results[0].content | b64decode }}'
timeout: 120
check_mode: true
diff: true
register: output_1
ignore_errors: true
- name: signing_ca_cert and signing_ca_key
docker_swarm:
advertise_addr: '{{ansible_default_ipv4.address | default("127.0.0.1")}}'
state: present
signing_ca_cert: '{{ ansible_certificates.results[0].content | b64decode }}'
signing_ca_key: '{{ ansible_keys.results[0].content | b64decode }}'
timeout: 120
diff: true
register: output_2
ignore_errors: true
- name: Private key
debug: msg="{{ ansible_keys.results[0].content | b64decode }}"
- name: Cert
debug: msg="{{ ansible_certificates.results[0].content | b64decode }}"
- docker_swarm_info: null
register: output
ignore_errors: true
- debug: var=output
- name: signing_ca_cert and signing_ca_key (change, check mode)
docker_swarm:
state: present
signing_ca_cert: '{{ ansible_certificates.results[1].content | b64decode }}'
signing_ca_key: '{{ ansible_keys.results[1].content | b64decode }}'
timeout: 120
check_mode: true
diff: true
register: output_5
ignore_errors: true
- name: signing_ca_cert and signing_ca_key (change)
docker_swarm:
state: present
signing_ca_cert: '{{ ansible_certificates.results[1].content | b64decode }}'
signing_ca_key: '{{ ansible_keys.results[1].content | b64decode }}'
timeout: 120
diff: true
register: output_6
ignore_errors: true
- name: assert signing_ca_cert and signing_ca_key
assert:
that:
- output_1 is changed
- 'output_1.actions[0] | regex_search("New Swarm cluster created: ")'
- output_1.diff.before is defined
- output_1.diff.after is defined
- output_2 is changed
- 'output_2.actions[0] | regex_search("New Swarm cluster created: ")'
- output_2.diff.before is defined
- output_2.diff.after is defined
- output_5 is changed
- output_5.actions[0] == "Swarm cluster updated"
- output_5.diff.before is defined
- output_5.diff.after is defined
- output_6 is changed
- output_6.actions[0] == "Swarm cluster updated"
- output_6.diff.before is defined
- output_6.diff.after is defined
when: docker_py_version is version('2.6.0', '>=')
- assert:
that:
- output_1 is failed
- ('version is ' ~ docker_py_version ~ ' ') in output_1.msg
- '"Minimum version required is 2.6.0 " in output_1.msg'
when: docker_py_version is version('2.6.0', '<')
- include_tasks: cleanup.yml