diff options
| -rw-r--r-- | ansible/roles/cloudkitty/defaults/main.yml | 6 | ||||
| -rw-r--r-- | ansible/roles/cloudkitty/tasks/config.yml | 20 | ||||
| -rw-r--r-- | ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 | 19 |
3 files changed, 38 insertions, 7 deletions
diff --git a/ansible/roles/cloudkitty/defaults/main.yml b/ansible/roles/cloudkitty/defaults/main.yml index 1da04420e..c5c093571 100644 --- a/ansible/roles/cloudkitty/defaults/main.yml +++ b/ansible/roles/cloudkitty/defaults/main.yml @@ -8,6 +8,7 @@ cloudkitty_services: volumes: "{{ cloudkitty_api_default_volumes + cloudkitty_api_extra_volumes }}" dimensions: "{{ cloudkitty_api_dimensions }}" healthcheck: "{{ cloudkitty_api_healthcheck }}" + wsgi: "cloudkitty.wsgi.api:application" haproxy: cloudkitty_api: enabled: "{{ enable_cloudkitty }}" @@ -228,3 +229,8 @@ cloudkitty_database_enable_tls_internal: "{{ database_enable_tls_internal | bool # Copy certificates ################### cloudkitty_copy_certs: "{{ kolla_copy_ca_into_containers | bool or cloudkitty_database_enable_tls_internal | bool }}" + +####### +# WSGI +####### +cloudkitty_wsgi_provider: "uwsgi" diff --git a/ansible/roles/cloudkitty/tasks/config.yml b/ansible/roles/cloudkitty/tasks/config.yml index 1a3492b0a..e5f95f301 100644 --- a/ansible/roles/cloudkitty/tasks/config.yml +++ b/ansible/roles/cloudkitty/tasks/config.yml @@ -76,6 +76,22 @@ become: true with_dict: "{{ cloudkitty_services | select_services_enabled_and_mapped_to_host }}" +- name: "Configure uWSGI for cloudkitty-api" + ansible.builtin.include_role: + name: service-uwsgi-config + vars: + project_services: "{{ cloudkitty_services }}" + service: "{{ cloudkitty_services['cloudkitty-api'] }}" + service_name: "cloudkitty-api" + service_uwsgi_config_http_port: "{{ cloudkitty_api_listen_port }}" + service_uwsgi_config_log_file_chmod: "644" + service_uwsgi_config_module: "{{ service.wsgi }}" + service_uwsgi_config_uid: "cloudkitty" + service_uwsgi_config_workers: "{{ cloudkitty_api_workers }}" + when: + - service | service_enabled_and_mapped_to_host + - cloudkitty_wsgi_provider == "uwsgi" + - name: Copying over wsgi-cloudkitty.conf vars: service: "{{ cloudkitty_services['cloudkitty-api'] }}" @@ -84,7 +100,9 @@ dest: "{{ node_config_directory }}/cloudkitty-api/wsgi-cloudkitty.conf" mode: "0660" become: true - when: service | service_enabled_and_mapped_to_host + when: + - cloudkitty_wsgi_provider == "apache" + - service | service_enabled_and_mapped_to_host - name: Copying over existing policy file ansible.builtin.template: diff --git a/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 b/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 index 3ba9b7221..c6fcca90e 100644 --- a/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 +++ b/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 @@ -1,20 +1,27 @@ -{% set cloudkitty_cmd = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %} -{% set cloudkitty_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %} +{% set apache_binary = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %} +{% set apache_conf_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %} +{% set command = ('/usr/sbin/' + apache_binary + ' -DFOREGROUND') if cloudkitty_wsgi_provider == 'apache' else 'uwsgi /etc/cloudkitty/cloudkitty-api-uwsgi.ini' %} { - "command": "{{ cloudkitty_cmd }} -DFOREGROUND", + "command": "{{ command }}", "config_files": [ { "source": "{{ container_config_directory }}/cloudkitty.conf", "dest": "/etc/cloudkitty/cloudkitty.conf", "owner": "cloudkitty", "perm": "0600" - }, + }{% if cloudkitty_wsgi_provider == "apache" %}, { "source": "{{ container_config_directory }}/wsgi-cloudkitty.conf", - "dest": "/etc/{{ cloudkitty_dir }}/wsgi-cloudkitty.conf", + "dest": "/etc/{{ apache_conf_dir }}/wsgi-cloudkitty.conf", "owner": "cloudkitty", "perm": "0600" - }{% if cloudkitty_policy_file is defined %}, + }{% elif cloudkitty_wsgi_provider == "uwsgi" %}, + { + "source": "{{ container_config_directory }}/cloudkitty-api-uwsgi.ini", + "dest": "/etc/cloudkitty/cloudkitty-api-uwsgi.ini", + "owner": "cloudkitty", + "perm": "0600" + }{% endif %}{% if cloudkitty_policy_file is defined %}, { "source": "{{ container_config_directory }}/{{ cloudkitty_policy_file }}", "dest": "/etc/cloudkitty/{{ cloudkitty_policy_file }}", |
