feat(servers_config): passes context to custom source_path templates

This commit is contained in:
sticky-note 2022-12-28 15:46:20 +11:00
parent 982705f1a6
commit c835e537fb
3 changed files with 13 additions and 11 deletions

View File

@ -27,7 +27,5 @@ nginx_config:
)
}}
- template: jinja
{% if 'source_path' not in nginx.server.config %}
- context:
config: {{ nginx.server.config|json(sort_keys=False) }}
{% endif %}
config: {{ nginx.server.get('config', {})|json(sort_keys=False) }}

View File

@ -129,11 +129,9 @@ nginx_server_available_dir:
- {{ k }}: {{ v }}
{%- endfor %}
{%- endif %}
{% if 'source_path' not in settings.config %}
- context:
config: {{ settings.config|json(sort_keys=False) }}
nginx: {{ _nginx|json() }}
{% endif %}
config: {{ settings.get('config',{})|json(sort_keys=False) }}
{% if 'overwrite' in settings and settings.overwrite == False %}
- unless:
- test -e {{ server_curpath(server) }}

View File

@ -119,9 +119,10 @@ nginx:
## - - -- - - -- -- - - --- -- - -- - - - -- - - - - -- - - - -- - - - -- - ##
config:
include: 'snippets/letsencrypt.conf'
# IMPORTANT: This option is mutually exclusive with TOFS and the rest of
# the options; if it is found other options (worker_processes: 4 and so
# on) are not processed and just upload the file from source
# IMPORTANT: This option is mutually exclusive with TOFS.
# It uploads the file from source and passes the global `nginx` and the
# `config` dictionnary to the template.
# `jinja` is assumed as template type.
source_path: salt://path_to_nginx_conf_file/nginx.conf
worker_processes: 4
# pass as very first in configuration; otherwise nginx will fail to start
@ -278,9 +279,14 @@ nginx:
available_dir: /etc/nginx/sites-available
enabled_dir: /etc/nginx/sites-enabled
config:
# IMPORTANT: This field is mutually exclusive with TOFS and other
# config options, it just uploads the specified file
# IMPORTANT: This field is mutually exclusive with TOFS.
# It uploads the file from source and passes the global `nginx` and the
# `config` dictionnary to the template.
# `jinja` is assumed as template type.
source_path: salt://path-to-site-file/mysite2
# Example:
port: 80 # is passed as `config.port` to template located at `source_path`
custom_key: custom_value
# Below configuration becomes handy if you want to create custom
# configuration files for example if you want to create