Add service-uwsgi-config role

This role is a standard service role to be used in all
respective services roles to generate uwsgi configuration.

It is mainly based on Devstack configuration template.

Change-Id: I46af6ff709dff4f7a0942df4dadf001c653f44fa
This commit is contained in:
Michal Nasiadka 2024-11-28 18:16:40 +01:00
parent 5c975611f4
commit a1d817d99d
4 changed files with 49 additions and 0 deletions
ansible/roles/service-uwsgi-config
defaults
tasks
templates
releasenotes/notes

@ -0,0 +1,8 @@
---
service_uwsgi_config_host: "{{ api_interface_address | put_address_in_context('url') }}"
service_uwsgi_config_file: "{{ node_config_directory }}/{{ service_name }}/{{ service_name }}-uwsgi.ini"
service_uwsgi_config_log_dir: "{{ ansible_parent_role_names | first }}"
service_uwsgi_config_log_file: "{{ service_name }}-uwsgi.log"
service_uwsgi_config_tls_backend: false
service_uwsgi_config_worker_timeout: 80
service_uwsgi_config_workers: "{{ openstack_service_workers }}"

@ -0,0 +1,9 @@
---
- name: "Copying over {{ service_name }} uWSGI config"
template:
src: "uwsgi.ini.j2"
dest: "{{ service_uwsgi_config_file }}"
mode: "0660"
become: true
notify:
- Restart {{ service_name }} container

@ -0,0 +1,28 @@
[uwsgi]
add-header = Connection: close
buffer-size = 65535
die-on-term = true
enable-threads = true
exit-on-reload = false
hook-master-start = unix_signal:15 gracefully_kill_them_all
{% if service_uwsgi_config_tls_backend | bool %}
https = {{ service_uwsgi_config_host }}:{{ service_uwsgi_config_http_port }},{{ service_uwsgi_config_tls_cert }},{{ service_uwsgi_config_tls_key }}
{% else %}
http = {{ service_uwsgi_config_host }}:{{ service_uwsgi_config_http_port }}
{% endif %}
lazy-apps = true
logto2 = /var/log/kolla/{{ service_uwsgi_config_log_dir }}/{{ service_uwsgi_config_log_file }}
master = true
{% if service_uwsgi_config_module is defined %}
module = {{ service_uwsgi_config_module }}
{% elif service_uwsgi_config_wsgi_file is defined %}
wsgi-file = {{ service_uwsgi_config_wsgi_file }}
{% endif %}
plugins-dir = {{ '/usr/lib/uwsgi/plugins' if kolla_base_distro in ['ubuntu', 'debian'] else '/usr/lib64/uwsgi' }}
plugins = python3
processes = {{ service_uwsgi_config_workers }}
thunder-lock = true
{% if service_uwsgi_config_uid is defined %}
uid = {{ service_uwsgi_config_uid }}
{% endif %}
worker-reload-mercy = {{ service_uwsgi_config_worker_timeout }}

@ -0,0 +1,4 @@
---
features:
- |
``service-uwsgi-config`` role has been introduced for configuring uWSGI.