#SPDX-License-Identifier: MIT-0 --- # tasks file for garage - name: Create docker compose directory file: path: "{{ garage_docker_compose_dir }}" state: directory mode: '0755' - name: Create garage meta data directory file: path: "{{ garage_docker_volume_dir }}/meta" state: directory mode: '0755' - name: Create garage data directory file: path: "{{ garage_docker_volume_dir }}/data" state: directory mode: '0755' - name: Generate garage configuration file template: src: garage.toml.j2 dest: "{{ garage_docker_compose_dir }}/garage.toml" mode: '0644' - name: Generate bcrypt hash for webui password using htpasswd ansible.builtin.shell: | htpasswd -nbBC 10 "{{ garage_webui_username }}" "{{ garage_webui_password }}" register: _garage_webui_password_hash changed_when: false when: garage_webui_enabled - name: Create docker-compose file for garage template: src: docker-compose.yml.j2 dest: "{{ garage_docker_compose_dir }}/docker-compose.yml" mode: '0644' - name: Start garage container community.docker.docker_compose_v2: project_src: "{{ garage_docker_compose_dir }}" state: present - name: Wait for garage container to be running community.docker.docker_container_info: name: "{{ garage_service_name }}" register: _garage_container_info until: _garage_container_info.container.State.Running | default(false) retries: 30 delay: 2 - name: Wait for garage to be ready (check if garage command responds) community.docker.docker_container_exec: container: "{{ garage_service_name }}" command: /garage status register: _garage_status_check until: _garage_status_check.rc == 0 retries: 30 delay: 2 changed_when: false failed_when: false # Include bootstraping tasks (cluster bootstrap) - name: Include garage bootstraping tasks ansible.builtin.include_tasks: bootstrap.yml when: garage_bootstrap_enabled # Include provisioning tasks (S3 keys and buckets) - name: Include garage bootstraping tasks ansible.builtin.include_tasks: provision.yml when: garage_s3_keys | length > 0