From 0d914bd11c8c2400a26a8903b7dcd84a0d2bfd7d Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Wed, 9 Oct 2024 20:03:17 +0200 Subject: [PATCH] feat(hedgedoc): add deployment_method=podman, add docs --- roles/hedgedoc/README.md | 21 +++++++++++++++++++++ roles/hedgedoc/defaults/main/container.yml | 5 ++++- roles/hedgedoc/tasks/deploy-docker.yml | 7 ++++++- roles/hedgedoc/vars/main.yml | 1 + 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/roles/hedgedoc/README.md b/roles/hedgedoc/README.md index e69de29..fba2511 100644 --- a/roles/hedgedoc/README.md +++ b/roles/hedgedoc/README.md @@ -0,0 +1,21 @@ +# `finallycoffee.services.hedgedoc` ansible role + +Role to deploy and configure hedgedoc using `docker` or `podman`. +To configure hedgedoc, set either the config as complex data +directly in `hedgedoc_config` or use the flattened variables +from the `hedgedoc_config_*` prefix (see +[defaults/main/config.yml](defaults/main/config.yml)). + +To remove hedgedoc, set `hedgedoc_state: absent`. Note that this +will delete all data directories aswell, removing any traces this +role created on the target (except database contents). + +# Required configuration + +- `hedgedoc_config_domain` - Domain of the hedgedoc instance +- `hedgedoc_config_session_secret` - session secret for hedgedoc + +## Deployment methods + +To set the desired deployment method, set `hedgedoc_deployment_method` to a +supported deployment methods (see [vars/main.yml](vars/main.yml#5)). diff --git a/roles/hedgedoc/defaults/main/container.yml b/roles/hedgedoc/defaults/main/container.yml index cbe73dd..c34b355 100644 --- a/roles/hedgedoc/defaults/main/container.yml +++ b/roles/hedgedoc/defaults/main/container.yml @@ -48,7 +48,10 @@ hedgedoc_container_all_volumes: >-2 hedgedoc_container_base_labels: version: "{{ hedgedoc_container_tag | default(hedgedoc_version, true) }}" hedgedoc_container_labels: ~ +hedgedoc_container_network_mode: ~ hedgedoc_container_all_labels: >-2 {{ hedgedoc_container_base_labels | default({}, true) | combine(hedgedoc_container_labels | default({}, true)) }} -hedgedoc_container_restart_policy: "unless-stopped" +hedgedoc_container_restart_policy: >-2 + {{ (hedgedoc_deployment_method === 'docker') + | ternary('unless-stopped', 'on-failure') }} diff --git a/roles/hedgedoc/tasks/deploy-docker.yml b/roles/hedgedoc/tasks/deploy-docker.yml index 6de563f..881aba5 100644 --- a/roles/hedgedoc/tasks/deploy-docker.yml +++ b/roles/hedgedoc/tasks/deploy-docker.yml @@ -22,5 +22,10 @@ labels: "{{ hedgedoc_container_all_labels }}" volumes: "{{ hedgedoc_container_all_volumes }}" etc_hosts: "{{ hedgedoc_container_etc_hosts | default(omit, true) }}" - restart_policy: "{{ hedgedoc_container_restart_policy | default(omit, true) }}" + dns_servers: >-2 + {{ hedgedoc_container_dns_servers | default(omit, true) }} + network_mode: >-2 + {{ hedgedoc_container_network_mode | default(omit, true) }} + restart_policy: >-2 + {{ hedgedoc_container_restart_policy | default(omit, true) }} state: "{{ hedgedoc_container_state }}" diff --git a/roles/hedgedoc/vars/main.yml b/roles/hedgedoc/vars/main.yml index b6e954c..48a7602 100644 --- a/roles/hedgedoc/vars/main.yml +++ b/roles/hedgedoc/vars/main.yml @@ -4,6 +4,7 @@ hedgedoc_states: - absent hedgedoc_deployment_methods: - docker + - podman hedgedoc_required_arguments: - hedgedoc_config_domain