masakari: support host monitor
Change-Id: I3f43df7766c57622ab8d01a759fbeeef0a0c2b93 Implements: blueprint masakari-hostmonitor Co-Authored-By: Radosław Piliszek <radoslaw.piliszek@gmail.com>
This commit is contained in:
parent
9f578c85e0
commit
db517a44e4
@ -1228,3 +1228,10 @@ octavia_public_endpoint: "{{ public_protocol }}://{{ octavia_external_fqdn | put
|
|||||||
# file: "/full/qualified/path/to/mapping/json/file/to/mappingId3"
|
# file: "/full/qualified/path/to/mapping/json/file/to/mappingId3"
|
||||||
keystone_identity_providers: []
|
keystone_identity_providers: []
|
||||||
keystone_identity_mappings: []
|
keystone_identity_mappings: []
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Corosync options
|
||||||
|
####################
|
||||||
|
|
||||||
|
# this is UDP port
|
||||||
|
hacluster_corosync_port: 5405
|
||||||
|
@ -735,7 +735,10 @@ control
|
|||||||
[masakari-engine:children]
|
[masakari-engine:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[masakari-monitors:children]
|
[masakari-hostmonitor:children]
|
||||||
|
control
|
||||||
|
|
||||||
|
[masakari-instancemonitor:children]
|
||||||
compute
|
compute
|
||||||
|
|
||||||
[ovn-controller:children]
|
[ovn-controller:children]
|
||||||
|
@ -753,7 +753,10 @@ control
|
|||||||
[masakari-engine:children]
|
[masakari-engine:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[masakari-monitors:children]
|
[masakari-hostmonitor:children]
|
||||||
|
control
|
||||||
|
|
||||||
|
[masakari-instancemonitor:children]
|
||||||
compute
|
compute
|
||||||
|
|
||||||
[ovn-controller:children]
|
[ovn-controller:children]
|
||||||
|
@ -85,13 +85,6 @@ hacluster_pacemaker_extra_volumes: "{{ hacluster_extra_volumes }}"
|
|||||||
hacluster_pacemaker_remote_extra_volumes: "{{ hacluster_extra_volumes }}"
|
hacluster_pacemaker_remote_extra_volumes: "{{ hacluster_extra_volumes }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Corosync options
|
|
||||||
####################
|
|
||||||
|
|
||||||
# this is UDP port
|
|
||||||
hacluster_corosync_port: 5405
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Pacemaker options
|
# Pacemaker options
|
||||||
####################
|
####################
|
||||||
|
@ -29,12 +29,20 @@ masakari_services:
|
|||||||
dimensions: "{{ masakari_engine_dimensions }}"
|
dimensions: "{{ masakari_engine_dimensions }}"
|
||||||
masakari-instancemonitor:
|
masakari-instancemonitor:
|
||||||
container_name: masakari_instancemonitor
|
container_name: masakari_instancemonitor
|
||||||
group: masakari-monitors
|
group: masakari-instancemonitor
|
||||||
enabled: true
|
enabled: true
|
||||||
image: "{{ masakari_monitors_image_full }}"
|
image: "{{ masakari_monitors_image_full }}"
|
||||||
volumes: "{{ masakari_instancemonitor_default_volumes + masakari_instancemonitor_extra_volumes }}"
|
volumes: "{{ masakari_instancemonitor_default_volumes + masakari_instancemonitor_extra_volumes }}"
|
||||||
privileged: True
|
privileged: True
|
||||||
dimensions: "{{ masakari_instancemonitor_dimensions }}"
|
dimensions: "{{ masakari_instancemonitor_dimensions }}"
|
||||||
|
masakari-hostmonitor:
|
||||||
|
container_name: masakari_hostmonitor
|
||||||
|
group: masakari-hostmonitor
|
||||||
|
enabled: true
|
||||||
|
ipc_mode: host
|
||||||
|
image: "{{ masakari_monitors_image_full }}"
|
||||||
|
volumes: "{{ masakari_hostmonitor_default_volumes + masakari_hostmonitor_extra_volumes }}"
|
||||||
|
dimensions: "{{ masakari_hostmonitor_dimensions }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -67,11 +75,13 @@ masakari_engine_dimensions: "{{ default_container_dimensions }}"
|
|||||||
# NOTE(mgoddard): Allow masakari_monitors_dimensions for backwards
|
# NOTE(mgoddard): Allow masakari_monitors_dimensions for backwards
|
||||||
# compatibility.
|
# compatibility.
|
||||||
masakari_instancemonitor_dimensions: "{{ masakari_monitors_dimensions | default(default_container_dimensions) }}"
|
masakari_instancemonitor_dimensions: "{{ masakari_monitors_dimensions | default(default_container_dimensions) }}"
|
||||||
|
masakari_hostmonitor_dimensions: "{{ default_container_dimensions }}"
|
||||||
|
|
||||||
masakari_extra_volumes: "{{ default_extra_volumes }}"
|
masakari_extra_volumes: "{{ default_extra_volumes }}"
|
||||||
masakari_api_extra_volumes: "{{ masakari_extra_volumes }}"
|
masakari_api_extra_volumes: "{{ masakari_extra_volumes }}"
|
||||||
masakari_engine_extra_volumes: "{{ masakari_extra_volumes }}"
|
masakari_engine_extra_volumes: "{{ masakari_extra_volumes }}"
|
||||||
masakari_instancemonitor_extra_volumes: "{{ masakari_extra_volumes }}"
|
masakari_instancemonitor_extra_volumes: "{{ masakari_extra_volumes }}"
|
||||||
|
masakari_hostmonitor_extra_volumes: "{{ masakari_extra_volumes }}"
|
||||||
|
|
||||||
masakari_api_default_volumes:
|
masakari_api_default_volumes:
|
||||||
- "{{ node_config_directory }}/masakari-api/:{{ container_config_directory }}/:ro"
|
- "{{ node_config_directory }}/masakari-api/:{{ container_config_directory }}/:ro"
|
||||||
@ -92,6 +102,12 @@ masakari_instancemonitor_default_volumes:
|
|||||||
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
||||||
- "kolla_logs:/var/log/kolla/"
|
- "kolla_logs:/var/log/kolla/"
|
||||||
- "{{ kolla_dev_repos_directory ~ '/masakari-monitors/masakarimonitors:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/masakarimonitors' if masakari_dev_mode | bool else '' }}"
|
- "{{ kolla_dev_repos_directory ~ '/masakari-monitors/masakarimonitors:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/masakarimonitors' if masakari_dev_mode | bool else '' }}"
|
||||||
|
masakari_hostmonitor_default_volumes:
|
||||||
|
- "{{ node_config_directory }}/masakari-hostmonitor/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "{{ '/etc/timezone:/etc/timezone:ro' if kolla_base_distro in ['debian', 'ubuntu'] else '' }}"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "{{ kolla_dev_repos_directory ~ '/masakari-monitors/masakarimonitors:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/masakarimonitors' if masakari_dev_mode | bool else '' }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
|
@ -46,3 +46,19 @@
|
|||||||
dimensions: "{{ service.dimensions }}"
|
dimensions: "{{ service.dimensions }}"
|
||||||
when:
|
when:
|
||||||
- kolla_action != "config"
|
- kolla_action != "config"
|
||||||
|
|
||||||
|
- name: Restart masakari-hostmonitor container
|
||||||
|
vars:
|
||||||
|
service_name: "masakari-hostmonitor"
|
||||||
|
service: "{{ masakari_services[service_name] }}"
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "recreate_or_restart_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ service.container_name }}"
|
||||||
|
image: "{{ service.image }}"
|
||||||
|
ipc_mode: "{{ service.ipc_mode }}"
|
||||||
|
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ service.dimensions }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
common_options: "{{ docker_common_options }}"
|
common_options: "{{ docker_common_options }}"
|
||||||
name: "{{ item.value.container_name }}"
|
name: "{{ item.value.container_name }}"
|
||||||
image: "{{ item.value.image }}"
|
image: "{{ item.value.image }}"
|
||||||
|
ipc_mode: "{{ item.value.ipc_mode | default(omit) }}"
|
||||||
privileged: "{{ item.value.privileged | default(False) }}"
|
privileged: "{{ item.value.privileged | default(False) }}"
|
||||||
volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
|
volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
|
||||||
dimensions: "{{ item.value.dimensions }}"
|
dimensions: "{{ item.value.dimensions }}"
|
||||||
|
@ -104,6 +104,7 @@
|
|||||||
- service.enabled | bool
|
- service.enabled | bool
|
||||||
with_items:
|
with_items:
|
||||||
- masakari-instancemonitor
|
- masakari-instancemonitor
|
||||||
|
- masakari-hostmonitor
|
||||||
notify:
|
notify:
|
||||||
- Restart {{ service_name }} container
|
- Restart {{ service_name }} container
|
||||||
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"command": "masakari-hostmonitor --config-file /etc/masakari-monitors/masakari-monitors.conf",
|
||||||
|
"config_files": [
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/masakari-monitors.conf",
|
||||||
|
"dest": "/etc/masakari-monitors/masakari-monitors.conf",
|
||||||
|
"owner": "masakari",
|
||||||
|
"perm": "0600"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"path": "/var/log/kolla/masakari",
|
||||||
|
"owner": "masakari:masakari",
|
||||||
|
"recurse": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -13,5 +13,25 @@ password = {{ masakari_keystone_password }}
|
|||||||
cafile = {{ openstack_cacert }}
|
cafile = {{ openstack_cacert }}
|
||||||
api_interface = internal
|
api_interface = internal
|
||||||
|
|
||||||
|
{% if service_name == 'masakari-instancemonitor' %}
|
||||||
[libvirt]
|
[libvirt]
|
||||||
connection_uri = "qemu+tcp://{{ migration_interface_address | put_address_in_context('url') }}/system"
|
connection_uri = "qemu+tcp://{{ migration_interface_address | put_address_in_context('url') }}/system"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if service_name == 'masakari-hostmonitor' %}
|
||||||
|
[host]
|
||||||
|
{#
|
||||||
|
NOTE(yoctozepto): ``restrict_to_remotes`` is due to being unable to monitor
|
||||||
|
both types at once and Kolla has remotes on dedicated computes so it is
|
||||||
|
a better default choice.
|
||||||
|
This limitation may be lifted in the near future (Xena+).
|
||||||
|
#}
|
||||||
|
restrict_to_remotes = True
|
||||||
|
{% if inventory_hostname in groups['hacluster'] %}
|
||||||
|
pacemaker_node_type = cluster
|
||||||
|
corosync_multicast_interfaces = {{ api_interface }}
|
||||||
|
corosync_multicast_ports = {{ hacluster_corosync_port }}
|
||||||
|
{% elif inventory_hostname in groups['hacluster-remote'] %}
|
||||||
|
pacemaker_node_type = remote
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
@ -1158,7 +1158,8 @@
|
|||||||
hosts:
|
hosts:
|
||||||
- masakari-api
|
- masakari-api
|
||||||
- masakari-engine
|
- masakari-engine
|
||||||
- masakari-monitors
|
- masakari-hostmonitor
|
||||||
|
- masakari-instancemonitor
|
||||||
- '&enable_masakari_True'
|
- '&enable_masakari_True'
|
||||||
serial: '{{ kolla_serial|default("0") }}'
|
serial: '{{ kolla_serial|default("0") }}'
|
||||||
roles:
|
roles:
|
||||||
|
@ -803,3 +803,10 @@
|
|||||||
#octavia_amp_boot_network_list:
|
#octavia_amp_boot_network_list:
|
||||||
#octavia_amp_secgroup_list:
|
#octavia_amp_secgroup_list:
|
||||||
#octavia_amp_flavor_id:
|
#octavia_amp_flavor_id:
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Corosync options
|
||||||
|
####################
|
||||||
|
|
||||||
|
# this is UDP port
|
||||||
|
#hacluster_corosync_port: 5405
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Adds support for Masakari host monitor.
|
@ -802,7 +802,10 @@ control
|
|||||||
[masakari-engine:children]
|
[masakari-engine:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[masakari-monitors:children]
|
[masakari-hostmonitor:children]
|
||||||
|
control
|
||||||
|
|
||||||
|
[masakari-instancemonitor:children]
|
||||||
compute
|
compute
|
||||||
|
|
||||||
[ovn-controller:children]
|
[ovn-controller:children]
|
||||||
|
Loading…
Reference in New Issue
Block a user