diff --git a/playbooks/molecule/resources/xnat/inventory/group_vars/centos7.yml b/playbooks/molecule/resources/xnat/inventory/group_vars/centos7.yml index 8687ca6e..57a0d9d1 100644 --- a/playbooks/molecule/resources/xnat/inventory/group_vars/centos7.yml +++ b/playbooks/molecule/resources/xnat/inventory/group_vars/centos7.yml @@ -10,3 +10,4 @@ install_python: - python-setuptools pip_packages: - cryptography + - docker diff --git a/playbooks/molecule/resources/xnat/inventory/group_vars/container_service.yml b/playbooks/molecule/resources/xnat/inventory/group_vars/container_service.yml index 8ed2d1eb..6dbf1e98 100644 --- a/playbooks/molecule/resources/xnat/inventory/group_vars/container_service.yml +++ b/playbooks/molecule/resources/xnat/inventory/group_vars/container_service.yml @@ -6,3 +6,4 @@ docker_client_certificate_cache_directory: docker_server_hostname: "{{ hostvars['xnat_cserv']['hostname'] }}" docker_server_ip: "{{ hostvars['xnat_cserv']['ansible_ip'] }}" docker_server_port: 2376 +docker_swarm_enabled: true diff --git a/playbooks/molecule/resources/xnat/inventory/group_vars/container_service_client.yml b/playbooks/molecule/resources/xnat/inventory/group_vars/container_service_client.yml index 39c8cff2..ef679b12 100644 --- a/playbooks/molecule/resources/xnat/inventory/group_vars/container_service_client.yml +++ b/playbooks/molecule/resources/xnat/inventory/group_vars/container_service_client.yml @@ -6,10 +6,11 @@ xnat_container_service_client_hostname: "{{ hostvars['xnat_web']['hostname'] }}" xnat_container_service_validate_certs: "{{ ssl.validate_certs }}" xnat_container_service_hostname: "{{ docker_server_hostname }}" -xnat_container_service_ip: "{{ docker_service_ip }}" xnat_container_service_port: "{{ docker_server_port }}" xnat_container_service_certificate_cache_directory: "{{ docker_client_certificate_cache_directory }}" xnat_container_service_path_translation_xnat_prefix: "{{ xnat_root_dir }}" xnat_container_service_path_translation_docker_prefix: /storage/xnat/data/xnat + +xnat_container_service_swarm_mode: "{{ docker_swarm_enabled }}" diff --git a/playbooks/molecule/resources/xnat/inventory/group_vars/rocky9.yml b/playbooks/molecule/resources/xnat/inventory/group_vars/rocky9.yml index 3c1a2daf..73109b87 100644 --- a/playbooks/molecule/resources/xnat/inventory/group_vars/rocky9.yml +++ b/playbooks/molecule/resources/xnat/inventory/group_vars/rocky9.yml @@ -10,3 +10,4 @@ install_python: - python3-setuptools pip_packages: - cryptography + - docker diff --git a/roles/docker/README.md b/roles/docker/README.md index ef28ced9..7a1b7f6c 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -15,6 +15,7 @@ on CentOS 7 or Rocky Linux 8. | `docker_rpm_gpg_key_url` | The url of the Docker repository GPG key. Defaults to `https://download.docker.com/linux/centos/gpg` | | `docker_repo_baseurl` | URL to the directory containing the repodata. Defaults to `https://download.docker.com/linux/centos` | | `docker_yum_package` | The name of the Docker package. Defaults to `docker` | +| `docker_swarm_enabled` | Initialise a [Docker Swarm](https://docs.docker.com/engine/swarm/). Defaults to `false`. | If you would like to [configure](https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket) diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index abd9bc68..70b54551 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -41,3 +41,6 @@ docker_client_certificate_directory: "{{ docker_certificate_directory }}/client_certs" docker_client_certificate_cache_directory: "{{ lookup('env', 'HOME') }}/ansible_persistent_files/docker_certificates" + +# Swarm mode +docker_swarm_enabled: false diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 1fa109e0..9c7a5cdb 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -101,3 +101,8 @@ name: "{{ docker_service_name }}" state: started enabled: true + +- name: Initialize Docker Swarm + community.docker.docker_swarm: + state: present + when: docker_swarm_enabled diff --git a/roles/xnat_container_service/tasks/main.yml b/roles/xnat_container_service/tasks/main.yml index 78f0ff33..c35b65d7 100644 --- a/roles/xnat_container_service/tasks/main.yml +++ b/roles/xnat_container_service/tasks/main.yml @@ -18,7 +18,10 @@ cert-path: "{{ xnat_container_service_certificate_directory if xnat_container_service_use_ssl else '' }}" - swarm-mode: false + backend: + "{{ 'swarm' if xnat_container_service_swarm_mode else 'docker' }}" + swarm-mode: "{{ xnat_container_service_swarm_mode }}" + max-concurrent-finalizing-jobs: 1 path-translation-xnat-prefix: "{{ xnat_container_service_path_translation_xnat_prefix }}" path-translation-docker-prefix: