Added senlin-conductor and senlin-health-manager

Depends-On: https://review.opendev.org/692948/
Depends-On: https://review.opendev.org/692691/
Change-Id: I07827b896d36c3723697540fcff164224f6729af
This commit is contained in:
Erik Olof Gunnar Andersson 2019-11-04 22:13:01 -08:00
parent baef98a232
commit 619ccf1242
13 changed files with 160 additions and 7 deletions

View File

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

View File

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

View File

@ -21,7 +21,7 @@
rewriterule18 programname ^(trove-api|trove-conductor|trove-manage|trove-taskmanager)$ openstack_python
rewriterule19 programname ^(congress-server)$ 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
rewriterule23 programname ^(freezer-api|freezer-api_access|freezer-manage)$ openstack_python
rewriterule24 programname ^(octavia-api|octavia-health-manager|octavia-housekeeping|octavia-worker)$ openstack_python

View File

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

View File

@ -22,6 +22,13 @@ senlin_services:
external: true
port: "{{ senlin_api_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:
container_name: senlin_engine
group: senlin-engine
@ -29,6 +36,13 @@ senlin_services:
image: "{{ senlin_engine_image_full }}"
volumes: "{{ senlin_engine_default_volumes + senlin_engine_extra_volumes }}"
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
@ -44,31 +58,53 @@ senlin_database_address: "{{ database_address | put_address_in_context('url') }}
senlin_install_type: "{{ kolla_install_type }}"
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_tag: "{{ senlin_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_tag: "{{ senlin_tag }}"
senlin_api_image_full: "{{ senlin_api_image }}:{{ senlin_api_tag }}"
senlin_api_dimensions: "{{ default_container_dimensions }}"
senlin_conductor_dimensions: "{{ default_container_dimensions }}"
senlin_engine_dimensions: "{{ default_container_dimensions }}"
senlin_health_manager_dimensions: "{{ default_container_dimensions }}"
senlin_api_default_volumes:
- "{{ node_config_directory }}/senlin-api/:{{ 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_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:
- "{{ node_config_directory }}/senlin-engine/:{{ 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_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_api_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_conductor_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_engine_extra_volumes: "{{ senlin_extra_volumes }}"
senlin_health_manager_extra_volumes: "{{ senlin_extra_volumes }}"
####################
# OpenStack

View File

@ -14,6 +14,21 @@
when:
- 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
vars:
service_name: "senlin-engine"
@ -28,3 +43,18 @@
dimensions: "{{ service.dimensions }}"
when:
- 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
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
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
{% if service_name == 'senlin-engine' %}
num_engine_workers = {{ openstack_service_workers }}
{% endif %}
transport_url = {{ rpc_transport_url }}
{% if service_name == 'senlin-api' %}
@ -24,10 +20,25 @@ service_project_name = service
service_user_domain = default
service_project_domain = default
{% if service_name == 'senlin-conductor' %}
[conductor]
workers = {{ openstack_service_workers }}
{% endif %}
[database]
connection = mysql+pymysql://{{ senlin_database_user }}:{{ senlin_database_password }}@{{ senlin_database_address }}/{{ senlin_database_name }}
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]
www_authenticate_uri = {{ keystone_internal_url }}
auth_url = {{ keystone_admin_url }}

View File

@ -1128,7 +1128,9 @@
gather_facts: false
hosts:
- senlin-api
- senlin-conductor
- senlin-engine
- senlin-health-manager
- '&enable_senlin_True'
serial: '{{ kolla_serial|default("0") }}'
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
[senlin-conductor:children]
senlin
[senlin-engine:children]
senlin
[senlin-health-manager:children]
senlin
# Searchlight
[searchlight-api:children]
searchlight