---
- include_tasks: utils/once/flag.yml
- name: "π§© For '{{ application_id }}': load docker and compose"
include_role:
name: sys-stk-backend
vars:
compose_handlers_flush: false
- name: "β
Ensure volumes directory exists"
ansible.builtin.file:
path: "{{ lookup('container', application_id, 'directories.volumes') }}"
state: directory
mode: "0755"
- name: "π Create shared object-store network for '{{ application_id }}'"
include_tasks: "{{ lookup('path_absolute', 'roles/sys-svc-compose/tasks/utils/network/create.yml') }}"
vars:
network_role_id: "{{ application_id }}"
- name: "π Render SeaweedFS S3 identities config"
stack_host_template:
src: s3.json.j2
dest: "{{ SEAWEEDFS_S3_CONFIG_PATH }}"
notify:
- compose-up
- container-recreate
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
- name: "βΆοΈ Start the SeaweedFS stack"
ansible.builtin.meta: flush_handlers
- name: "π Include role sys-stk-front-proxy for '{{ SEAWEEDFS_S3_DOMAIN }}'"
include_role:
name: sys-stk-front-proxy
vars:
domain: "{{ SEAWEEDFS_S3_DOMAIN }}"
http_port: "{{ SEAWEEDFS_S3_PORT_PUBLIC }}"
- name: "π Converge every consumer bucket's policy once the S3 gateway answers"
when: IS_STACK_HOST | bool
block:
- name: "β³ Wait until the SeaweedFS S3 gateway answers"
ansible.builtin.shell: >
container exec {{ SEAWEEDFS_CONTAINER_ADDRESS }}
wget -q -O - http://127.0.0.1:{{ SEAWEEDFS_S3_PORT_INTERNAL }}/status
args:
executable: /bin/bash
register: _seaweedfs_ready
retries: 30
delay: 5
until: _seaweedfs_ready.rc == 0
changed_when: false
- name: "π List SeaweedFS buckets"
include_tasks: utils/bucket/list.yml
- name: "π Converge the bucket policy of each consumer whose bucket exists"
include_tasks: utils/bucket/policy.yml
loop: "{{ lookup('objstore_consumers', 'seaweedfs') }}"
loop_control:
loop_var: seaweedfs_bucket_policy_consumer
when: lookup('objstore', seaweedfs_bucket_policy_consumer, 'bucket') in (_seaweedfs_buckets.stdout | seaweedfs_bucket_names)