ironic: Add support for using uWSGI
Change-Id: I2b72712479a05a73b82d8e30235333db2c92ebfd Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
This commit is contained in:
@@ -8,6 +8,7 @@ ironic_services:
|
|||||||
volumes: "{{ ironic_api_default_volumes + ironic_api_extra_volumes }}"
|
volumes: "{{ ironic_api_default_volumes + ironic_api_extra_volumes }}"
|
||||||
dimensions: "{{ ironic_api_dimensions }}"
|
dimensions: "{{ ironic_api_dimensions }}"
|
||||||
healthcheck: "{{ ironic_api_healthcheck }}"
|
healthcheck: "{{ ironic_api_healthcheck }}"
|
||||||
|
wsgi: "ironic.wsgi:application"
|
||||||
haproxy:
|
haproxy:
|
||||||
ironic_api:
|
ironic_api:
|
||||||
enabled: "{{ enable_ironic }}"
|
enabled: "{{ enable_ironic }}"
|
||||||
@@ -411,3 +412,8 @@ ironic_database_enable_tls_internal: "{{ database_enable_tls_internal | bool }}"
|
|||||||
# Copy certificates
|
# Copy certificates
|
||||||
###################
|
###################
|
||||||
ironic_copy_certs: "{{ kolla_copy_ca_into_containers | bool or ironic_enable_tls_backend | bool or ironic_database_enable_tls_internal | bool }}"
|
ironic_copy_certs: "{{ kolla_copy_ca_into_containers | bool or ironic_enable_tls_backend | bool or ironic_database_enable_tls_internal | bool }}"
|
||||||
|
|
||||||
|
############
|
||||||
|
# WSGI
|
||||||
|
############
|
||||||
|
ironic_wsgi_provider: "uwsgi"
|
||||||
|
@@ -262,4 +262,24 @@
|
|||||||
dest: "{{ node_config_directory }}/ironic-api/ironic-api-wsgi.conf"
|
dest: "{{ node_config_directory }}/ironic-api/ironic-api-wsgi.conf"
|
||||||
mode: "0660"
|
mode: "0660"
|
||||||
become: true
|
become: true
|
||||||
when: service | service_enabled_and_mapped_to_host
|
when:
|
||||||
|
- service | service_enabled_and_mapped_to_host
|
||||||
|
- ironic_wsgi_provider == "apache"
|
||||||
|
|
||||||
|
- name: "Configure uWSGI for ironic-api"
|
||||||
|
include_role:
|
||||||
|
name: service-uwsgi-config
|
||||||
|
vars:
|
||||||
|
project_services: "{{ ironic_services }}"
|
||||||
|
service: "{{ ironic_services['ironic-api'] }}"
|
||||||
|
service_name: "ironic-api"
|
||||||
|
service_uwsgi_config_http_port: "{{ ironic_api_listen_port }}"
|
||||||
|
service_uwsgi_config_log_file_chmod: "644"
|
||||||
|
service_uwsgi_config_module: "{{ service.wsgi }}"
|
||||||
|
service_uwsgi_config_tls_backend: "{{ ironic_enable_tls_backend | bool }}"
|
||||||
|
service_uwsgi_config_tls_cert: "/etc/ironic/certs/ironic-cert.pem"
|
||||||
|
service_uwsgi_config_tls_key: "/etc/ironic/certs/ironic-key.pem"
|
||||||
|
service_uwsgi_config_uid: "ironic"
|
||||||
|
when:
|
||||||
|
- service | service_enabled_and_mapped_to_host
|
||||||
|
- ironic_wsgi_provider == "uwsgi"
|
||||||
|
@@ -1,20 +1,27 @@
|
|||||||
{% set apache_binary = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %}
|
{% 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 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 ironic_wsgi_provider == 'apache' else 'uwsgi /etc/ironic/ironic-api-uwsgi.ini' %}
|
||||||
{
|
{
|
||||||
"command": "/usr/sbin/{{ apache_binary }} -DFOREGROUND",
|
"command": "{{ command }}",
|
||||||
"config_files": [
|
"config_files": [
|
||||||
{
|
{
|
||||||
"source": "{{ container_config_directory }}/ironic.conf",
|
"source": "{{ container_config_directory }}/ironic.conf",
|
||||||
"dest": "/etc/ironic/ironic.conf",
|
"dest": "/etc/ironic/ironic.conf",
|
||||||
"owner": "ironic",
|
"owner": "ironic",
|
||||||
"perm": "0600"
|
"perm": "0600"
|
||||||
},
|
}{% if ironic_wsgi_provider == "apache" %},
|
||||||
{
|
{
|
||||||
"source": "{{ container_config_directory }}/ironic-api-wsgi.conf",
|
"source": "{{ container_config_directory }}/ironic-api-wsgi.conf",
|
||||||
"dest": "/etc/{{ apache_conf_dir }}/ironic-api-wsgi.conf",
|
"dest": "/etc/{{ apache_conf_dir }}/ironic-api-wsgi.conf",
|
||||||
"owner": "ironic",
|
"owner": "ironic",
|
||||||
"perm": "0600"
|
"perm": "0600"
|
||||||
}{% if ironic_policy_file is defined %},
|
}{% elif ironic_wsgi_provider == "uwsgi" %},
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/ironic-api-uwsgi.ini",
|
||||||
|
"dest": "/etc/ironic/ironic-api-uwsgi.ini",
|
||||||
|
"owner": "ironic",
|
||||||
|
"perm": "0600"
|
||||||
|
}{% endif %}{% if ironic_policy_file is defined %},
|
||||||
{
|
{
|
||||||
"source": "{{ container_config_directory }}/{{ ironic_policy_file }}",
|
"source": "{{ container_config_directory }}/{{ ironic_policy_file }}",
|
||||||
"dest": "/etc/ironic/{{ ironic_policy_file }}",
|
"dest": "/etc/ironic/{{ ironic_policy_file }}",
|
||||||
|
@@ -4,7 +4,7 @@ auth_strategy = noauth
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
debug = {{ ironic_logging_debug }}
|
debug = {{ ironic_logging_debug }}
|
||||||
|
|
||||||
log_dir = /var/log/kolla/ironic
|
log_file = /var/log/kolla/ironic/{{ service_name }}
|
||||||
|
|
||||||
transport_url = {{ rpc_transport_url }}
|
transport_url = {{ rpc_transport_url }}
|
||||||
|
|
||||||
|
@@ -11,5 +11,7 @@ features:
|
|||||||
- Variable
|
- Variable
|
||||||
* - Heat
|
* - Heat
|
||||||
- heat_wsgi_provider
|
- heat_wsgi_provider
|
||||||
|
* - Ironic
|
||||||
|
- ironic_wsgi_provider
|
||||||
* - Octavia
|
* - Octavia
|
||||||
- octavia_wsgi_provider
|
- octavia_wsgi_provider
|
||||||
|
Reference in New Issue
Block a user