diff --git a/.ageboxreg.yml b/.ageboxreg.yml index d3cc70c..7267ee6 100644 --- a/.ageboxreg.yml +++ b/.ageboxreg.yml @@ -2,4 +2,5 @@ file_ids: - .env - files/docker/fedi/.env - roles/common/files/robo_key +- roles/docker/files/rclone.conf version: "1" diff --git a/files/docker/hoarder/docker-stack.yaml b/files/docker/hoarder/docker-stack.yaml new file mode 100644 index 0000000..e878427 --- /dev/null +++ b/files/docker/hoarder/docker-stack.yaml @@ -0,0 +1,33 @@ +services: + heimdall: + image: linuxserver/heimdall:latest + volumes: [configdata:/config] + networks: + - reverse_proxy + deploy: + rollback_config: + failure_action: continue + update_config: + delay: 2s + failure_action: rollback + order: start-first + placement: + constraints: + - node.labels.services_kind==${SERVICE_KIND:-common} + labels: + - traefik.enable=true + - traefik.http.routers.hoarder.rule=Host(`hoarder.alecodes.page`) + - traefik.http.services.hoarder.loadbalancer.server.port=80 + +volumes: + configdata: + driver: rclone + driver_opts: + remote: 'homelab-s3:docker-volume-heimdall' + allow_other: 'true' + vfs_cache_mode: full + poll_interval: 0 + +networks: + reverse_proxy: + external: true diff --git a/playbooks/setup/docker.yaml b/playbooks/setup/docker.yaml index d5c809a..73b37de 100644 --- a/playbooks/setup/docker.yaml +++ b/playbooks/setup/docker.yaml @@ -3,7 +3,7 @@ --- - name: Setup Docker hosts: docker - user: root + become: true roles: - docker vars: @@ -13,7 +13,7 @@ - name: Setup docker swarm manager hosts: docker_managers - user: root + become: true tasks: - name: Setup swarm manager include_role: @@ -22,7 +22,7 @@ - name: Setup docker swarm workers hosts: docker_workers - user: root + become: true tasks: - name: "Setup swarm workers" include_role: diff --git a/roles/docker/files/rclone.conf.agebox b/roles/docker/files/rclone.conf.agebox new file mode 100644 index 0000000..1d15caa Binary files /dev/null and b/roles/docker/files/rclone.conf.agebox differ diff --git a/roles/docker/tasks/docker_alpine.yaml b/roles/docker/tasks/docker_alpine.yaml index 58fe2f2..07d7a8e 100644 --- a/roles/docker/tasks/docker_alpine.yaml +++ b/roles/docker/tasks/docker_alpine.yaml @@ -4,6 +4,7 @@ ansible.builtin.package: state: present name: + - fuse - docker - docker-cli-compose - py3-yaml diff --git a/roles/docker/tasks/main.yaml b/roles/docker/tasks/main.yaml index bdc01af..feab356 100644 --- a/roles/docker/tasks/main.yaml +++ b/roles/docker/tasks/main.yaml @@ -21,3 +21,31 @@ name: docker state: started enabled: true + +- name: Create rclone config directory + ansible.builtin.file: + path: /var/lib/docker-plugins/rclone/config + state: directory + mode: '0755' + +- name: Create rclone cache directory + ansible.builtin.file: + path: /var/lib/docker-plugins/rclone/cache + state: directory + mode: '0755' + +- name: Coping rclone config + copy: + src: files/rclone.conf + dest: /var/lib/docker-plugins/rclone/config/rclone.conf + mode: '0755' + owner: root + group: root + +- name: Install rclone docker plugin + community.docker.docker_plugin: + state: enable + plugin_name: rclone/docker-volume-rclone:amd64 + alias: rclone + plugin_options: + args: "-v"