Added Openstack Masakari role for the deployment
This commit adds experimental deployment of Masakari role. It requires existing corosync/pacemaker cluster on compute nodes for hostmonitors to operate correctly. Corosync/pacemaker deployment stays out of OSA scope for now. Depends-On: Ib33d7bc83f1428763f873e1155fd9e3eb4c937e4 Change-Id: Ie543885a52f013635b9f553982c3d6448e3cc3aa
This commit is contained in:
parent
b590c1d43d
commit
4f9e923ee6
@ -138,6 +138,11 @@
|
||||
src: https://git.openstack.org/openstack/openstack-ansible-os_magnum
|
||||
version: master
|
||||
trackbranch: master
|
||||
- name: os_masakari
|
||||
scm: git
|
||||
src: https://git.openstack.org/openstack/openstack-ansible-os_masakari
|
||||
version: master
|
||||
trackbranch: master
|
||||
- name: os_mistral
|
||||
scm: git
|
||||
src: https://git.openstack.org/openstack/openstack-ansible-os_mistral
|
||||
|
@ -152,6 +152,8 @@ OpenStack service roles
|
||||
|
||||
- :role_docs:`os_magnum`
|
||||
|
||||
- :role_docs:`os_masakari`
|
||||
|
||||
- :role_docs:`os_neutron`
|
||||
|
||||
- :role_docs:`os_nova`
|
||||
|
@ -243,6 +243,15 @@
|
||||
<td>✔</td>
|
||||
<td>✔</td>
|
||||
</tr>
|
||||
<tr class="warning">
|
||||
<td>os_masakari</td>
|
||||
<td>Stein</td>
|
||||
<td>Incubated</td>
|
||||
<td>✔</td>
|
||||
<td>✔</td>
|
||||
<td>✔</td>
|
||||
<td>✔</td>
|
||||
</tr>
|
||||
<tr class="warning">
|
||||
<td>os_molteniron</td>
|
||||
<td>Pike</td>
|
||||
|
4
etc/openstack_deploy/conf.d/masakari.yml.aio
Normal file
4
etc/openstack_deploy/conf.d/masakari.yml.aio
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
masakari-infra_hosts:
|
||||
aio1:
|
||||
ip: 172.29.236.100
|
9
etc/openstack_deploy/conf.d/masakari.yml.example
Normal file
9
etc/openstack_deploy/conf.d/masakari.yml.example
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
# The infra nodes that will be running the masakari services
|
||||
masakari-infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
ip: 172.20.236.112
|
||||
infra3:
|
||||
ip: 172.20.236.113
|
@ -72,6 +72,9 @@ container_skel:
|
||||
magnum_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
masakari_monitors_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
memcached_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
|
@ -192,6 +192,11 @@ magnum_oslomsg_rpc_password:
|
||||
#magnum_oslomsg_notify_password:
|
||||
magnum_trustee_password:
|
||||
|
||||
## Masakari Options
|
||||
masakari_service_password:
|
||||
masakari_oslomsg_rpc_password:
|
||||
masakari_container_mysql_password:
|
||||
|
||||
# Mistral Options
|
||||
mistral_service_password:
|
||||
mistral_galera_password:
|
||||
|
54
inventory/env.d/masakari.yml
Normal file
54
inventory/env.d/masakari.yml
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
component_skel:
|
||||
masakari_engine:
|
||||
belongs_to:
|
||||
- masakari_all
|
||||
masakari_api:
|
||||
belongs_to:
|
||||
- masakari_all
|
||||
masakari_monitor:
|
||||
belongs_to:
|
||||
- masakari_all
|
||||
|
||||
container_skel:
|
||||
masakari_api_container:
|
||||
belongs_to:
|
||||
- masakari-infra_containers
|
||||
contains:
|
||||
- masakari_engine
|
||||
- masakari_api
|
||||
masakari_monitors_container:
|
||||
belongs_to:
|
||||
- masakari-monitor_containers
|
||||
contains:
|
||||
- masakari_monitor
|
||||
properties:
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
masakari-monitor_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
masakari-monitor_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
masakari-infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
masakari-infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
@ -266,6 +266,15 @@ haproxy_default_services:
|
||||
haproxy_backend_options:
|
||||
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
|
||||
haproxy_service_enabled: "{{ groups['magnum_all'] is defined and groups['magnum_all'] | length > 0 }}"
|
||||
- service:
|
||||
haproxy_service_name: masakari_api
|
||||
haproxy_backend_nodes: "{{ groups['masakari_api'] | default([]) }}"
|
||||
haproxy_ssl: "{{ haproxy_ssl }}"
|
||||
haproxy_port: 15868
|
||||
haproxy_balance_type: http
|
||||
haproxy_backend_options:
|
||||
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
|
||||
haproxy_service_enabled: "{{ groups['masakari_api'] is defined and groups['masakari_api'] | length > 0 }}"
|
||||
- service:
|
||||
haproxy_service_name: mistral
|
||||
haproxy_backend_nodes: "{{ groups['mistral_all'] | default([]) }}"
|
||||
|
@ -19,6 +19,7 @@ horizon_enable_cinder_backup: "{{ hostvars['localhost']['cinder_service_backup_p
|
||||
horizon_enable_heat_ui: "{{ (groups['heat_all'] is defined) and (groups['heat_all'] | length > 0) }}"
|
||||
horizon_enable_ironic_ui: "{{ (groups['ironic_all'] is defined) and (groups['ironic_all'] | length > 0) }}"
|
||||
horizon_enable_magnum_ui: "{{ (groups['magnum_all'] is defined) and (groups['magnum_all'] | length > 0) }}"
|
||||
horizon_enable_masakari_ui: "{{ (groups['masakari_all'] is defined) and (groups['masakari_all'] | length > 0) }}"
|
||||
horizon_enable_designate_ui: "{{ (groups['designate_all'] is defined) and (groups['designate_all'] | length > 0) }}"
|
||||
horizon_enable_octavia_ui: "{{ (groups['octavia-infra_all'] is defined) and (groups['octavia-infra_all'] | length > 0) }}"
|
||||
# NOTE(mhayden): neutron-lbaas is a separate plugin and requires the full
|
||||
|
@ -135,6 +135,14 @@ ironic_server
|
||||
|
||||
[magnum_all]
|
||||
|
||||
[masakari_all:children]
|
||||
masakari_api
|
||||
masakari_engine
|
||||
masakari_monitor
|
||||
[masakari_api]
|
||||
[masakari_engine]
|
||||
[masakari_monitor]
|
||||
|
||||
[mistral_all:children]
|
||||
mistral_api
|
||||
mistral_engine
|
||||
|
@ -256,6 +256,12 @@ magnum_git_install_branch: f1f96e58358aaf56adf4d299665501141c798fa4 # HEAD as of
|
||||
magnum_git_project_group: magnum_all
|
||||
magnum_git_track_branch: master
|
||||
|
||||
## Masakari service
|
||||
masakari_git_repo: https://git.openstack.org/openstack/masakari
|
||||
masakari_git_install_branch: d73a88a9c42fd3e70b291913cec0a61fa5654117 # HEAD as of 23.03.2019
|
||||
masakari_git_project_group: masakari_all
|
||||
masakari_git_track_branch: master
|
||||
|
||||
## Mistral service
|
||||
mistral_git_repo: https://git.openstack.org/openstack/mistral
|
||||
mistral_git_install_branch: 3e42cffd6c9494ffab13a2504ee6370232a0ef4d # HEAD as of 23.03.2019
|
||||
|
70
playbooks/os-masakari-install.yml
Normal file
70
playbooks/os-masakari-install.yml
Normal file
@ -0,0 +1,70 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Install the masakari components
|
||||
hosts: masakari_all
|
||||
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
||||
user: root
|
||||
vars_files:
|
||||
- "defaults/repo_packages/openstack_services.yml"
|
||||
- "defaults/{{ install_method }}_install.yml"
|
||||
pre_tasks:
|
||||
# In order to ensure that any container, software or
|
||||
# config file changes which causes a container/service
|
||||
# restart do not cause an unexpected outage, we drain
|
||||
# the load balancer back end for this container.
|
||||
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
|
||||
vars:
|
||||
haproxy_backend: masakari_api-back
|
||||
haproxy_state: disabled
|
||||
when:
|
||||
- "'masakari_api' in group_names"
|
||||
- "groups['masakari_api'] | length > 1"
|
||||
|
||||
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
|
||||
when: not is_metal
|
||||
|
||||
- include_tasks: common-tasks/os-log-dir-setup.yml
|
||||
vars:
|
||||
log_dirs:
|
||||
- src: "/openstack/log/{{ inventory_hostname }}-masakari"
|
||||
dest: "/var/log/masakari"
|
||||
- include_tasks: common-tasks/unbound-clients.yml
|
||||
when:
|
||||
- hostvars['localhost']['resolvconf_enabled'] | bool
|
||||
|
||||
roles:
|
||||
- role: "os_masakari"
|
||||
|
||||
post_tasks:
|
||||
- include_tasks: "common-tasks/rsyslog-client.yml"
|
||||
vars:
|
||||
rsyslog_client_log_rotate_file: masakari_log_rotate
|
||||
rsyslog_client_log_dir: "/var/log/masakari"
|
||||
rsyslog_client_config_name: "99-masakari-rsyslog-client.conf"
|
||||
# Now that container changes are done, we can set
|
||||
# the load balancer back end for this container
|
||||
# to available again.
|
||||
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
|
||||
vars:
|
||||
haproxy_backend: masakari_api-back
|
||||
haproxy_state: enabled
|
||||
when:
|
||||
- "'masakari_api' in group_names"
|
||||
- "groups['masakari_api'] | length > 1"
|
||||
|
||||
environment: "{{ deployment_environment_variables | default({}) }}"
|
||||
tags:
|
||||
- masakari
|
@ -33,6 +33,7 @@
|
||||
- import_playbook: os-octavia-install.yml
|
||||
- import_playbook: os-tacker-install.yml
|
||||
- import_playbook: os-blazar-install.yml
|
||||
- import_playbook: os-masakari-install.yml
|
||||
|
||||
# This is not an OpenStack service, but integrates with Keystone and must be
|
||||
# deployed afterward.
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- Experimental support has been added to allow the deployment of the
|
||||
OpenStack Masakari service when hosts are present in the host group
|
||||
``masakari-infra_hosts``.
|
@ -275,6 +275,17 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'magnum-infra_hosts',
|
||||
'magnum_all',
|
||||
'magnum_container',
|
||||
'masakari_all',
|
||||
'masakari_api',
|
||||
'masakari_api_container',
|
||||
'masakari_engine',
|
||||
'masakari-infra_all',
|
||||
'masakari-infra_containers',
|
||||
'masakari-infra_hosts',
|
||||
'masakari_monitor',
|
||||
'masakari-monitor_containers',
|
||||
'masakari_monitors_container',
|
||||
'masakari-monitor_hosts',
|
||||
'mistral-infra_all',
|
||||
'mistral-infra_containers',
|
||||
'mistral-infra_hosts',
|
||||
|
Loading…
Reference in New Issue
Block a user