17 Commits

Author SHA1 Message Date
64b0ef72b2 meta: bump collection version to 0.1.3 2024-11-13 18:51:38 +01:00
be6f7c1cc2 fix(element): user id and primary group id, start containers with uid=0 2024-11-12 20:47:58 +01:00
3ac177e04b fix(element): container image task arguments 2024-11-12 20:47:04 +01:00
c153483976 fix(element): typo in variable name 2024-11-12 20:24:49 +01:00
71b9e8046c update(element): bump version to 1.11.85 2024-11-12 17:34:00 +01:00
04b5f8f54c update(element): bump version to 1.11.84 2024-11-07 20:40:18 +01:00
7c78210551 update(synapse): bump version to 1.118.0 2024-11-07 20:39:29 +01:00
7452bd8288 meta: bump collection version to 0.1.2 2024-10-22 20:38:23 +02:00
881eabdf00 update(cinny): bump version to 4.2.2 2024-10-22 20:38:07 +02:00
4dbc7f9fea update(synapse): bump version to 1.117.0 2024-10-22 20:37:20 +02:00
23e39bee4d update(element): bump version to 1.11.82 2024-10-22 20:36:45 +02:00
1214b49da2 update(element): bump version to 1.11.81 2024-10-22 20:36:30 +02:00
64ca0e97b5 update(element): bump version to 1.11.80 2024-10-22 20:36:12 +02:00
3279f5b0ce meta: add tags to collection 2024-10-07 19:44:58 +02:00
f57b851916 feat(hydrogen): add deployment method podman 2024-10-07 19:44:53 +02:00
e84e2fba81 feat(hydrogen): add ansible role for deployment using docker 2024-10-07 19:44:48 +02:00
2ec6bde3bd fix(synapse): use correct key in hostvars 2024-10-07 18:18:39 +02:00
16 changed files with 80 additions and 23 deletions

View File

@ -1,6 +1,6 @@
namespace: finallycoffee
name: matrix
version: 0.1.1
version: 0.1.3
readme: README.md
authors:
- transcaffeine <transcaffeine@finally.coffee>
@ -10,3 +10,10 @@ build_ignore:
- '*.tar.gz'
repository: https://git.finally.coffee/finallycoffee/matrix
issues: https://codeberg.org/finallycoffee/ansible-collection-matrix/issues
tags:
- matrix
- synapse
- homeserver
- element
- hydrogen
- cinny

6
playbooks/hydrogen.yml Normal file
View File

@ -0,0 +1,6 @@
---
- name: Deploy and configure hydrogen
hosts: "{{ hydrogen_hosts | default('hydrogen') }}"
become: "{{ hydrogen_become | default(true) }}"
roles:
- role: finallycoffee.matrix.hydrogen

View File

@ -1,7 +1,7 @@
---
cinny_user: cinny
cinny_state: "present"
cinny_version: "4.2.1"
cinny_version: "4.2.2"
cinny_deployment_method: "docker"
cinny_base_path: "/opt/cinny"

View File

@ -11,12 +11,15 @@ element_container_image_registry: "docker.io"
element_container_image_namespace: "vectorim"
element_container_image_name: "element-web"
element_container_image_tag: ~
element_container_image_source: pull
element_container_image_force_source: >-2
{{ element_container_image_tag | default(false, true) | bool }}
element_container_name: "element-web"
element_container_restart_policy: >-
{{ (element_deployment_method == 'docker')
| ternary('unless-stopped',
(element_deployment_method == 'podman' |
ternary('on-failure', 'always'))
ternary('on-failure', 'always')))
}}
element_container_full_volumes: >-
{{ element_container_default_volumes

View File

@ -1,7 +1,7 @@
---
element_user: element
element_state: "present"
element_version: "1.11.77"
element_version: "1.11.85"
element_deployment_method: "docker"
element_base_path: "/opt/element"
@ -10,9 +10,9 @@ element_dist_path: "{{ element_source_path }}/dist"
element_config_path: "{{ element_base_path }}/config"
element_config_file: "{{ element_config_path }}/config.json"
element_host_uid: >-
{{ element_user_info is defined
element_host_uid: >-2
{{ ((element_user_info is defined) and ('uid' in element_user_info))
| ternary(element_user_info.uid, element_user) }}
element_host_gid: >-
{{ element_user_info is defined
element_host_gid: >-2
{{ ((element_user_info is defined) and ('uid' in element_user_info))
| ternary(element_user_info.group, element_user) }}

View File

@ -14,8 +14,8 @@
community.docker.docker_image:
name: "{{ element_container_image }}"
state: "{{ element_state }}"
source: "{{ element_container_source }}"
force_source: "{{ element_container_image_tag | default(false, true) }}"
source: "{{ element_container_image_source }}"
force_source: "{{ element_container_image_force_source }}"
- name: Ensure container '{{ element_container_name }}' is {{ element_state }}
community.docker.docker_container:
@ -23,7 +23,7 @@
image: "{{ element_container_image }}"
state: "{{ (element_state == 'present') | ternary('started', 'absent') }}"
env: "{{ element_container_env | default(omit) }}"
user: "{{ element_container_user }}"
user: "{{ element_container_user | default(omit) }}"
ports: "{{ element_container_ports | default(omit) }}"
labels: "{{ element_container_labels | default(omit) }}"
volumes: "{{ element_container_full_volumes }}"

View File

@ -3,8 +3,8 @@
containers.podman.podman_image:
name: "{{ element_container_image }}"
state: "{{ element_state }}"
pull: "{{ element_container_source == 'pull' }}"
force: "{{ element_container_image_tag | default(false, true) }}"
pull: "{{ element_container_image_source == 'pull' }}"
force: "{{ element_container_image_force_source }}"
- name: Ensure container '{{ element_container_name }}' is {{ element_state }}
containers.podman.podman_container:
@ -12,7 +12,7 @@
image: "{{ element_container_image }}"
state: "{{ (element_state == 'present') | ternary('started', 'absent') }}"
env: "{{ element_container_env | default(omit) }}"
user: "{{ element_container_user }}"
user: "{{ element_container_user | default(omit) }}"
ports: "{{ element_container_ports | default(omit) }}"
labels: "{{ element_container_labels | default(omit) }}"
volumes: "{{ element_container_full_volumes }}"

View File

@ -1,5 +1,5 @@
---
element_state:
element_states:
- present
- absent

View File

@ -9,14 +9,17 @@ hydrogen_container_image: >-2
([
hydrogen_container_image_server,
hydrogen_container_image_namespace,
hydrogen_container_image_name
hydrogen_container_image_name,
] | join('/'))
+ ':' + (hydrogen_container_image_tag
| default('v' + hydrogen_version), true)
| default('v' + hydrogen_version, true))
}}
hydrogen_container_working_directory: "/usr/share/nginx/html"
hydrogen_container_config_file: >-2
{{ hydrogen_container_working_directory }}/config.json
hydrogen_container_base_volumes:
- "{{ hydrogen_config_file }}:{{ hydrogen_config_file }}:ro"
- "{{ hydrogen_config_file }}:{{ hydrogen_container_config_file }}:ro"
hydrogen_container_full_volumes: >-2
{{ hydrogen_container_base_volumes | default([], true)
+ (hydrogen_container_volumes | default([], true))
@ -25,7 +28,7 @@ hydrogen_container_image_source: pull
hydrogen_container_image_force_source: >-2
{{ hydrogen_container_image_tag | default(false, true) | bool }}
hydrogen_container_state: >-2
{{ (hydrogen-state == 'present') | ternary('started', 'absent') }}
{{ (hydrogen_state == 'present') | ternary('started', 'absent') }}
hydrogen_container_env: ~
hydrogen_container_user: >-2
{{ hydrogen_run_user_id }}:{{ hydrogen_run_group_id }}

View File

@ -1,6 +1,8 @@
---
hydrogen_state: present
hydrogen_user: hydrogen
hydrogen_version: "0.5.0"
hydrogen_deployment_method: docker
hydrogen_config_file: "/etc/hydrogen/config.json"

View File

@ -9,3 +9,4 @@ galaxy_info:
- matrix
- matrix-client
- docker
- podman

View File

@ -0,0 +1,32 @@
---
- name: Ensure container image '{{ hydrogen_container_image }}' is {{ hydrogen_state }} on host
containers.podman.podman_image:
name: "{{ hydrogen_container_image }}"
state: "{{ hydrogen_state }}"
pull: "{{ hydrogen_container_image_source == 'pull' }}"
force: "{{ hydrogen_container_image_force_source }}"
register: hydrogen_container_image_info
until: hydrogen_container_image_info is success
retries: 5
delay: 3
- name: Ensure hydrogen container '{{ hydrogen_container_name }}' is {{ hydrogen_container_state }}
containers.podman.podman_container:
name: "{{ hydrogen_container_name }}"
image: "{{ hydrogen_container_image }}"
env: "{{ hydrogen_container_env | default(omit, true) }}"
user: "{{ hydrogen_container_user }}"
ports: "{{ hydrogen_container_ports | default(omit, true) }}"
labels: "{{ hydrogen_container_labels | default(omit, true) }}"
ulimits: "{{ hydrogen_container_ulimits | default(omit, true) }}"
volumes: "{{ hydrogen_container_volumes }}"
network: "{{ hydrogen_container_networks | default(omit, true) }}"
purge_networks: >-2
{{ hydrogen_container_purge_networks | default(omit, true) }}
dns_servers: >-2
{{ hydrogen_container_dns_servers | default(omit, true) }}
etc_hosts: >-2
{{ hydrogen_container_etc_hosts | default(omit, true) }}
restart_policy: >-2
{{ hydrogen_container_restart_policy | default(omit, true) }}
state: "{{ hydrogen_container_state }}"

View File

@ -21,7 +21,9 @@
groups: "{{ hydrogen_user_groups | default(omit, true) }}"
append: >-2
{{ hydrogen_user_append_groups
| default(hydrogen_user_groups | default([]) | length > 0, true) }}"
| default(hydrogen_user_groups | default([]) | length > 0, true)
| bool
}}
state: "{{ hydrogen_state }}"
register: hydrogen_user_info

View File

@ -4,3 +4,4 @@ hydrogen_states:
- absent
hydrogen_deployment_methods:
- docker
- podman

View File

@ -1,7 +1,7 @@
---
synapse_user: synapse
synapse_group: synapse
synapse_version: "1.116.0"
synapse_version: "1.118.0"
synapse_state: "present"
synapse_deployment_method: "docker"

View File

@ -17,8 +17,8 @@
msg: "Required variable '{{ item }}' is undefined!"
loop: "{{ synapse_required_variables }}"
when: >-2
item not in hostvars[ansible_host]
or hostvars[ansible_host][item] | length == 0
item not in hostvars[inventory_hostname]
or hostvars[inventory_hostname][item] | length == 0
- name: Ensure conditionally required variables are given
ansible.builtin.fail: