Make matrix-corporal configuration extensible

Fixes #70 (Github Issue).
This commit is contained in:
Slavi Pantaleev 2019-08-25 10:58:30 +03:00
parent 2d4e19326d
commit f2f3d41649
3 changed files with 39 additions and 3 deletions

View file

@ -53,3 +53,38 @@ matrix_corporal_http_api_auth_token: ""
matrix_corporal_policy_provider_config: "" matrix_corporal_policy_provider_config: ""
matrix_corporal_debug: false matrix_corporal_debug: false
# Default Corporal configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
# For a more advanced customization, you can extend the default (see `matrix_corporal_configuration_extension_json`)
# or completely replace this variable with your own template.
#
# The side-effect of this lookup is that Ansible would even parse the JSON for us, returning a dict.
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
matrix_corporal_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
# Your custom JSON configuration for Corporal should go to `matrix_corporal_configuration_extension_json`.
# This configuration extends the default starting configuration (`matrix_corporal_configuration_default`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_corporal_configuration_default`.
#
# Example configuration extension follows:
#
# matrix_corporal_configuration_extension_json: |
# {
# "Matrix": {
# "TimeoutMilliseconds": 60000
# }
# }
matrix_corporal_configuration_extension_json: '{}'
matrix_corporal_configuration_extension: "{{ matrix_corporal_configuration_extension_json|from_json if matrix_corporal_configuration_extension_json|from_json is mapping else {} }}"
# Holds the final Corporal configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_corporal_configuration_default`.
matrix_corporal_configuration: "{{ matrix_corporal_configuration_default|combine(matrix_corporal_configuration_extension, recursive=True) }}"

View file

@ -26,10 +26,12 @@
when: matrix_corporal_enabled|bool when: matrix_corporal_enabled|bool
- name: Ensure Matrix Corporal config installed - name: Ensure Matrix Corporal config installed
template: copy:
src: "{{ role_path }}/templates/config.json.j2" content: "{{ matrix_corporal_configuration|to_nice_json }}"
dest: "{{ matrix_corporal_config_dir_path }}/config.json" dest: "{{ matrix_corporal_config_dir_path }}/config.json"
mode: 0644 mode: 0644
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_username }}"
when: matrix_corporal_enabled|bool when: matrix_corporal_enabled|bool
- name: Ensure matrix-corporal.service installed - name: Ensure matrix-corporal.service installed

View file

@ -1,4 +1,3 @@
#jinja2: lstrip_blocks: "True"
{ {
"Matrix": { "Matrix": {
"HomeserverDomainName": "{{ matrix_corporal_matrix_homeserver_domain_name }}", "HomeserverDomainName": "{{ matrix_corporal_matrix_homeserver_domain_name }}",