Merge "Added senlin-conductor and senlin-health-manager"

This commit is contained in:
Zuul 2019-12-16 11:58:05 +00:00 committed by Gerrit Code Review
commit d7c297ed59
13 changed files with 160 additions and 7 deletions

View File

@ -634,9 +634,15 @@ watcher
[senlin-api:children] [senlin-api:children]
senlin senlin
[senlin-conductor:children]
senlin
[senlin-engine:children] [senlin-engine:children]
senlin senlin
[senlin-health-manager:children]
senlin
# Searchlight # Searchlight
[searchlight-api:children] [searchlight-api:children]
searchlight searchlight

View File

@ -653,9 +653,15 @@ watcher
[senlin-api:children] [senlin-api:children]
senlin senlin
[senlin-conductor:children]
senlin
[senlin-engine:children] [senlin-engine:children]
senlin senlin
[senlin-health-manager:children]
senlin
# Searchlight # Searchlight
[searchlight-api:children] [searchlight-api:children]
searchlight searchlight

View File

@ -21,7 +21,7 @@
rewriterule18 programname ^(trove-api|trove-conductor|trove-manage|trove-taskmanager)$ openstack_python rewriterule18 programname ^(trove-api|trove-conductor|trove-manage|trove-taskmanager)$ openstack_python
rewriterule19 programname ^(congress-server)$ openstack_python rewriterule19 programname ^(congress-server)$ openstack_python
rewriterule20 programname ^(murano-api|murano-engine)$ openstack_python rewriterule20 programname ^(murano-api|murano-engine)$ openstack_python
rewriterule21 programname ^(senlin-api|senlin-engine)$ openstack_python rewriterule21 programname ^(senlin-api|senlin-conductor|senlin-engine|senlin-health-manager)$ openstack_python
rewriterule22 programname ^(watcher-api|watcher-applier|watcher-db-manage|watcher-decision-engine)$ openstack_python rewriterule22 programname ^(watcher-api|watcher-applier|watcher-db-manage|watcher-decision-engine)$ openstack_python
rewriterule23 programname ^(freezer-api|freezer-api_access|freezer-manage)$ openstack_python rewriterule23 programname ^(freezer-api|freezer-api_access|freezer-manage)$ openstack_python
rewriterule24 programname ^(octavia-api|octavia-health-manager|octavia-housekeeping|octavia-worker)$ openstack_python rewriterule24 programname ^(octavia-api|octavia-health-manager|octavia-housekeeping|octavia-worker)$ openstack_python

View File

@ -108,7 +108,7 @@
</rule> </rule>
<rule> <rule>
key programname key programname
pattern ^(senlin-api|senlin-engine)$ pattern ^(senlin-api|senlin-conductor|senlin-engine|senlin-health-manager)$
tag openstack_python tag openstack_python
</rule> </rule>
<rule> <rule>

View File

@ -22,6 +22,13 @@ senlin_services:
external: true external: true
port: "{{ senlin_api_port }}" port: "{{ senlin_api_port }}"
listen_port: "{{ senlin_api_listen_port }}" listen_port: "{{ senlin_api_listen_port }}"
senlin-conductor:
container_name: senlin_conductor
group: senlin-conductor
enabled: true
image: "{{ senlin_conductor_image_full }}"
volumes: "{{ senlin_conductor_default_volumes + senlin_conductor_extra_volumes }}"
dimensions: "{{ senlin_conductor_dimensions }}"
senlin-engine: senlin-engine:
container_name: senlin_engine container_name: senlin_engine
group: senlin-engine group: senlin-engine
@ -29,6 +36,13 @@ senlin_services:
image: "{{ senlin_engine_image_full }}" image: "{{ senlin_engine_image_full }}"
volumes: "{{ senlin_engine_default_volumes + senlin_engine_extra_volumes }}" volumes: "{{ senlin_engine_default_volumes + senlin_engine_extra_volumes }}"
dimensions: "{{ senlin_engine_dimensions }}" dimensions: "{{ senlin_engine_dimensions }}"
senlin-health-manager:
container_name: senlin_health_manager
group: senlin-health-manager
enabled: true
image: "{{ senlin_health_manager_image_full }}"
volumes: "{{ senlin_health_manager_default_volumes + senlin_health_manager_extra_volumes }}"
dimensions: "{{ senlin_health_manager_dimensions }}"
#################### ####################
# Database # Database
@ -44,31 +58,53 @@ senlin_database_address: "{{ database_address | put_address_in_context('url') }}
senlin_install_type: "{{ kolla_install_type }}" senlin_install_type: "{{ kolla_install_type }}"
senlin_tag: "{{ openstack_release }}" senlin_tag: "{{ openstack_release }}"
senlin_conductor_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-conductor"
senlin_conductor_tag: "{{ senlin_tag }}"
senlin_conductor_image_full: "{{ senlin_conductor_image }}:{{ senlin_conductor_tag }}"
senlin_engine_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-engine" senlin_engine_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-engine"
senlin_engine_tag: "{{ senlin_tag }}" senlin_engine_tag: "{{ senlin_tag }}"
senlin_engine_image_full: "{{ senlin_engine_image }}:{{ senlin_engine_tag }}" senlin_engine_image_full: "{{ senlin_engine_image }}:{{ senlin_engine_tag }}"
senlin_health_manager_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-health-manager"
senlin_health_manager_tag: "{{ senlin_tag }}"
senlin_health_manager_image_full: "{{ senlin_health_manager_image }}:{{ senlin_health_manager_tag }}"
senlin_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-api" senlin_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ senlin_install_type }}-senlin-api"
senlin_api_tag: "{{ senlin_tag }}" senlin_api_tag: "{{ senlin_tag }}"
senlin_api_image_full: "{{ senlin_api_image }}:{{ senlin_api_tag }}" senlin_api_image_full: "{{ senlin_api_image }}:{{ senlin_api_tag }}"
senlin_api_dimensions: "{{ default_container_dimensions }}" senlin_api_dimensions: "{{ default_container_dimensions }}"
senlin_conductor_dimensions: "{{ default_container_dimensions }}"
senlin_engine_dimensions: "{{ default_container_dimensions }}" senlin_engine_dimensions: "{{ default_container_dimensions }}"
senlin_health_manager_dimensions: "{{ default_container_dimensions }}"
senlin_api_default_volumes: senlin_api_default_volumes:
- "{{ node_config_directory }}/senlin-api/:{{ container_config_directory }}/:ro" - "{{ node_config_directory }}/senlin-api/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/" - "kolla_logs:/var/log/kolla/"
- "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}" - "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}"
senlin_conductor_default_volumes:
- "{{ node_config_directory }}/senlin-conductor/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
- "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}"
senlin_engine_default_volumes: senlin_engine_default_volumes:
- "{{ node_config_directory }}/senlin-engine/:{{ container_config_directory }}/:ro" - "{{ node_config_directory }}/senlin-engine/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/" - "kolla_logs:/var/log/kolla/"
- "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}" - "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}"
senlin_health_manager_default_volumes:
- "{{ node_config_directory }}/senlin-health-manager/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
- "{{ kolla_dev_repos_directory ~ '/senlin/senlin:/var/lib/kolla/venv/lib/python2.7/site-packages/senlin' if senlin_dev_mode | bool else '' }}"
senlin_extra_volumes: "{{ default_extra_volumes }}" senlin_extra_volumes: "{{ default_extra_volumes }}"
senlin_api_extra_volumes: "{{ senlin_extra_volumes }}" senlin_api_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_conductor_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_engine_extra_volumes: "{{ senlin_extra_volumes }}" senlin_engine_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_health_manager_extra_volumes: "{{ senlin_extra_volumes }}"
#################### ####################
# OpenStack # OpenStack

View File

@ -14,6 +14,21 @@
when: when:
- kolla_action != "config" - kolla_action != "config"
- name: Restart senlin-conductor container
vars:
service_name: "senlin-conductor"
service: "{{ senlin_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
dimensions: "{{ service.dimensions }}"
when:
- kolla_action != "config"
- name: Restart senlin-engine container - name: Restart senlin-engine container
vars: vars:
service_name: "senlin-engine" service_name: "senlin-engine"
@ -28,3 +43,18 @@
dimensions: "{{ service.dimensions }}" dimensions: "{{ service.dimensions }}"
when: when:
- kolla_action != "config" - kolla_action != "config"
- name: Restart senlin-health-manager container
vars:
service_name: "senlin-health-manager"
service: "{{ senlin_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
dimensions: "{{ service.dimensions }}"
when:
- kolla_action != "config"

View File

@ -4,7 +4,9 @@
- include_tasks: config.yml - include_tasks: config.yml
when: inventory_hostname in groups['senlin-api'] or when: inventory_hostname in groups['senlin-api'] or
inventory_hostname in groups['senlin-engine'] inventory_hostname in groups['senlin-conductor'] or
inventory_hostname in groups['senlin-engine'] or
inventory_hostname in groups['senlin-health-manager']
- include_tasks: clone.yml - include_tasks: clone.yml
when: senlin_dev_mode | bool when: senlin_dev_mode | bool

View File

@ -0,0 +1,24 @@
{
"command": "senlin-conductor --config-file /etc/senlin/senlin.conf",
"config_files": [
{
"source": "{{ container_config_directory }}/senlin.conf",
"dest": "/etc/senlin/senlin.conf",
"owner": "senlin",
"perm": "0600"
}{% if senlin_policy_file is defined %},
{
"source": "{{ container_config_directory }}/{{ senlin_policy_file }}",
"dest": "/etc/senlin/{{ senlin_policy_file }}",
"owner": "senlin",
"perm": "0600"
}{% endif %}
],
"permissions": [
{
"path": "/var/log/kolla/senlin",
"owner": "senlin:senlin",
"recurse": true
}
]
}

View File

@ -0,0 +1,24 @@
{
"command": "senlin-health-manager --config-file /etc/senlin/senlin.conf",
"config_files": [
{
"source": "{{ container_config_directory }}/senlin.conf",
"dest": "/etc/senlin/senlin.conf",
"owner": "senlin",
"perm": "0600"
}{% if senlin_policy_file is defined %},
{
"source": "{{ container_config_directory }}/{{ senlin_policy_file }}",
"dest": "/etc/senlin/{{ senlin_policy_file }}",
"owner": "senlin",
"perm": "0600"
}{% endif %}
],
"permissions": [
{
"path": "/var/log/kolla/senlin",
"owner": "senlin:senlin",
"recurse": true
}
]
}

View File

@ -3,10 +3,6 @@ debug = {{ senlin_logging_debug }}
log_dir = /var/log/kolla/senlin log_dir = /var/log/kolla/senlin
{% if service_name == 'senlin-engine' %}
num_engine_workers = {{ openstack_service_workers }}
{% endif %}
transport_url = {{ rpc_transport_url }} transport_url = {{ rpc_transport_url }}
{% if service_name == 'senlin-api' %} {% if service_name == 'senlin-api' %}
@ -24,10 +20,25 @@ service_project_name = service
service_user_domain = default service_user_domain = default
service_project_domain = default service_project_domain = default
{% if service_name == 'senlin-conductor' %}
[conductor]
workers = {{ openstack_service_workers }}
{% endif %}
[database] [database]
connection = mysql+pymysql://{{ senlin_database_user }}:{{ senlin_database_password }}@{{ senlin_database_address }}/{{ senlin_database_name }} connection = mysql+pymysql://{{ senlin_database_user }}:{{ senlin_database_password }}@{{ senlin_database_address }}/{{ senlin_database_name }}
max_retries = -1 max_retries = -1
{% if service_name == 'senlin-engine' %}
[engine]
workers = {{ openstack_service_workers }}
{% endif %}
{% if service_name == 'senlin-health-manager' %}
[health_manager]
workers = {{ openstack_service_workers }}
{% endif %}
[keystone_authtoken] [keystone_authtoken]
www_authenticate_uri = {{ keystone_internal_url }} www_authenticate_uri = {{ keystone_internal_url }}
auth_url = {{ keystone_admin_url }} auth_url = {{ keystone_admin_url }}

View File

@ -1128,7 +1128,9 @@
gather_facts: false gather_facts: false
hosts: hosts:
- senlin-api - senlin-api
- senlin-conductor
- senlin-engine - senlin-engine
- senlin-health-manager
- '&enable_senlin_True' - '&enable_senlin_True'
serial: '{{ kolla_serial|default("0") }}' serial: '{{ kolla_serial|default("0") }}'
roles: roles:

View File

@ -0,0 +1,6 @@
---
features:
- |
Add support for two new Senlin services; ``senlin-conductor`` and
``senlin-health-manager``. Both of these services are required
for Senlin to be fully functional starting with the Ussuri release.

View File

@ -598,9 +598,15 @@ watcher
[senlin-api:children] [senlin-api:children]
senlin senlin
[senlin-conductor:children]
senlin
[senlin-engine:children] [senlin-engine:children]
senlin senlin
[senlin-health-manager:children]
senlin
# Searchlight # Searchlight
[searchlight-api:children] [searchlight-api:children]
searchlight searchlight