Refactor matterbridge profile
All checks were successful
ci/lysergic/push/pipeline Pipeline was successful

- reduce pillar calls
- no longer define possible configuration options, apply settings from
  pillar 1:1

Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
This commit is contained in:
Georg Pfuetzenreuter 2023-02-07 22:20:39 +01:00
parent f678de8560
commit 650854fa27
Signed by: Georg
GPG Key ID: 1ED2F138E7E6FF57
2 changed files with 26 additions and 23 deletions

View File

@ -1,35 +1,33 @@
{%- set header = salt['pillar.get']('managed_header_pound') -%}
{%- set myfqdn = salt['grains.get']('fqdn') -%}
{%- set mypillar = 'profile:matterbridge:instances:' ~ instance ~ ':' -%}
{%- set myaccounts = mypillar ~ 'accounts' -%}
{%- set mygateways = mypillar ~ 'gateways' -%}
{%- set generalopts = ['RemoteNickFormat', 'IgnoreFailureOnStart', 'MessageSplit', 'MediaDownloadSize', 'MediaDownloadPath', 'MediaServerDownload', 'LogFile'] -%}
{%- set accountopts = ['Nick', 'NickServNick', 'NickServPassword', 'Server', 'UseTLS', 'UseSASL', 'Label', 'Charset', 'IgnoreNicks', 'RunCommands', 'UseRelayMsg', 'RemoteNickFormat'] -%}
{{ header }}
{%- if general | length %}
[general]
{% for option in generalopts %}
{%- if salt['pillar.get'](mypillar ~ option, None) != None %}
{{ option }}="{{ salt['pillar.get'](mypillar ~ option) }}"
{%- endif -%}
{%- endfor -%}
{%- for option, value in general.items() %}
{%- if value is string %}
{%- set value = '"' ~ value ~ '"' %}
{%- endif %}
{{ option }}={{ value }}
{%- endfor %}
{% endif %}
{% for account, config in salt['pillar.get'](myaccounts).items() %}
[{{ config['protocol'] }}.{{ account }}]
{%- for option in accountopts %}
{%- if salt['pillar.get'](myaccounts ~ ':' ~ account ~ ':' ~ option, None) != None %}
{{ option }}="{{ config[option] }}"
{%- endif -%}
{%- for account, config in accounts.items() %}
[{{ account }}]
{%- for option, value in config.items() %}
{%- if value is string %}
{%- set value = '"' ~ value ~ '"' %}
{%- endif %}
{{ option }}={{ value }}
{%- endfor %}
{% endfor %}
{% endfor -%}
{% for gateway, config in salt['pillar.get'](mygateways).items() %}
{%- for gateway, config in gateways.items() %}
[[gateway]]
name="{{ gateway }}"
enable=true
{% for account, channel in config.items() %}
{%- for account, channel in config.items() %}
[[gateway.inout]]
account="{{ account }}"
channel="{{ channel }}"
{%- endfor %}
{% endfor %}
{%- endfor -%}

View File

@ -1,5 +1,5 @@
{%- set mypillar = 'profile:matterbridge' -%}
{%- set instances = salt['pillar.get'](mypillar ~ ':instances') or [] -%}
{%- set mypillar = salt['pillar.get']('profile:matterbridge') -%}
{%- set instances = mypillar['instances'] | default([]) -%}
matterbridge_packages:
pkg.installed:
@ -31,7 +31,12 @@ matterbridge_files:
- /etc/matterbridge/{{ instance }}.toml:
- context:
instance: {{ instance }}
general: {{ instances[instance]['general'] | default({}) }}
accounts: {{ instances[instance]['accounts'] }}
gateways: {{ instances[instance]['gateways'] }}
{%- endfor %}
{%- for instance in instances %}
matterbridge_{{ instance }}_service:
service.running:
- name: matterbridge@{{ instance }}.service