From 1d70a35f9ab0bdec6262176737fafa6a5c989629 Mon Sep 17 00:00:00 2001 From: uumas Date: Tue, 15 Mar 2022 21:26:58 +0200 Subject: [PATCH] Add WeKan --- README.md | 6 ++++++ docs/wekan.md | 13 +++++++++++++ galaxy.yml | 2 +- roles/container/tasks/main.yml | 30 +++++++++++++++++++++--------- roles/wekan/README.md | 1 + roles/wekan/meta/main.yml | 15 +++++++++++++++ roles/wekan/tasks/main.yml | 12 ++++++++++++ 7 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 docs/wekan.md create mode 100644 roles/wekan/README.md create mode 100644 roles/wekan/meta/main.yml create mode 100644 roles/wekan/tasks/main.yml diff --git a/README.md b/README.md index 43b8906..755bfa8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # uumas.docker Roles for services running on docker. + +To add a new role: +1. Add it + 1. usually meta/main.yml with depend on container + 1. README.md +1. Add docs to docs/ diff --git a/docs/wekan.md b/docs/wekan.md new file mode 100644 index 0000000..b7f019d --- /dev/null +++ b/docs/wekan.md @@ -0,0 +1,13 @@ +# Required variables +These variables are required. Example values included. Some general variables might also be required for this role. + +``` +ports: + wekan: + http: 8080 + +docker_vhost_domains: + hedgedoc: + - wekan.domain.tld + +``` diff --git a/galaxy.yml b/galaxy.yml index a748faf..be4c7fb 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -2,7 +2,7 @@ namespace: uumas name: docker -version: 0.5.0 +version: 0.5.1 readme: README.md repository: https://git.uumas.fi/uumas/ansible-docker license_file: LICENSE diff --git a/roles/container/tasks/main.yml b/roles/container/tasks/main.yml index cb6ffaa..8bd2a70 100644 --- a/roles/container/tasks/main.yml +++ b/roles/container/tasks/main.yml @@ -13,21 +13,33 @@ include_vars: traefik.yml when: reverse_proxy_type == 'traefik' -- name: "Postgresql container for {{ docker_service }}" - docker_container: - name: "{{ docker_service }}_db" - image: 'postgres:14-alpine' - pull: yes - container_default_behavior: no_defaults - env: +- name: Set postgres container env + set_fact: + db_container_image: 'postgres:14-alpine' + db_container_env: POSTGRES_USER: "{{ docker_service }}" POSTGRES_PASSWORD: "{{ database_passwords[docker_service] }}" + db_container_data: /var/lib/postgresql/data + when: docker_database is defined and docker_database == 'postgres' +- name: Set postgres container env + set_fact: + db_container_image: 'mongo:latest' + db_container_data: /data/db + when: docker_database is defined and docker_database == 'mongo' + +- name: "{{ docker_database }} database container for {{ docker_service }}" + docker_container: + name: "{{ docker_service }}_db" + image: "{{ db_container_image }}" + pull: yes + container_default_behavior: no_defaults + env: "{{ db_container_env | default(omit) }}" restart_policy: always volumes: - - "{{ docker_service }}_db:/var/lib/postgresql/data" + - "{{ docker_service }}_db:{{ db_container_data }}" networks: - name: "{{ docker_service }}" - when: docker_database is defined and docker_database == 'postgres' + when: docker_database is defined - name: "Container for {{ docker_service }}" docker_container: diff --git a/roles/wekan/README.md b/roles/wekan/README.md new file mode 100644 index 0000000..8e85e53 --- /dev/null +++ b/roles/wekan/README.md @@ -0,0 +1 @@ +Installs WeKan in docker diff --git a/roles/wekan/meta/main.yml b/roles/wekan/meta/main.yml new file mode 100644 index 0000000..ec47a46 --- /dev/null +++ b/roles/wekan/meta/main.yml @@ -0,0 +1,15 @@ +--- + +dependencies: + - role: container + docker_service: wekan + docker_image: quay.io/wekan/wekan + docker_image_http_port: 8080 + docker_database: mongo + docker_volumes: + - wekan_data:/data + docker_env: + MONGO_URL: mongodb://wekan_db:27017/wekan + ROOT_URL: "https://{{ docker_vhost_domains.wekan[0] }}" + WRITABLE_PATH: /data + diff --git a/roles/wekan/tasks/main.yml b/roles/wekan/tasks/main.yml new file mode 100644 index 0000000..9bacbfd --- /dev/null +++ b/roles/wekan/tasks/main.yml @@ -0,0 +1,12 @@ +--- + +- name: Get wekan data volume path from container creation output + set_fact: + wekan_data_volume: "{{ container_out.container.Mounts | selectattr('Destination', 'equalto', '/data') | join }}" + +- name: Set wekan data volume owner + file: + path: "{{ wekan_data_volume.Source }}" + state: directory + owner: 999 + group: 999