82e2f9deac
Clustercheck service is accessible via port 9200 on the Mysql network
(e.g. internal API). The bind address specified in the config currently
uses IP address. This breaks the OpenStack healthcheck because curl
refuses to fetch a URI with unquoted IPv6 address.
Use an fqdn as the bind address in the config to make sure the service
is reachable no matter the type of network used.
Change-Id: Ia41bf10ea65edd51cafee5416697628f972c693e
Closes-Bug: #1860124
(cherry picked from commit 643c4028b8
)
125 lines
4.2 KiB
YAML
125 lines
4.2 KiB
YAML
heat_template_version: rocky
|
|
|
|
description: >
|
|
MySQL HA clustercheck service deployment using puppet
|
|
This service is used by HAProxy in a HA scenario to report whether
|
|
the local galera node is synced
|
|
|
|
parameters:
|
|
ContainerClustercheckImage:
|
|
description: image
|
|
type: string
|
|
ContainerClustercheckConfigImage:
|
|
description: The container image to use for the clustercheck config_volume
|
|
type: string
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
ServiceData:
|
|
default: {}
|
|
description: Dictionary packing service data
|
|
type: json
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry. This
|
|
mapping overrides those in ServiceNetMapDefaults.
|
|
type: json
|
|
DefaultPasswords:
|
|
default: {}
|
|
type: json
|
|
RoleName:
|
|
default: ''
|
|
description: Role name on which the service is applied
|
|
type: string
|
|
RoleParameters:
|
|
default: {}
|
|
description: Parameters specific to the role
|
|
type: json
|
|
|
|
resources:
|
|
|
|
ContainersCommon:
|
|
type: ../containers-common.yaml
|
|
|
|
# We import from the corresponding docker service because otherwise we risk
|
|
# rewriting the tripleo::mysql::firewall_rules key with the baremetal firewall
|
|
# rules (see LP#1728918)
|
|
MysqlPuppetBase:
|
|
type: ../database/mysql-pacemaker-puppet.yaml
|
|
properties:
|
|
EndpointMap: {get_param: EndpointMap}
|
|
ServiceData: {get_param: ServiceData}
|
|
ServiceNetMap: {get_param: ServiceNetMap}
|
|
DefaultPasswords: {get_param: DefaultPasswords}
|
|
RoleName: {get_param: RoleName}
|
|
RoleParameters: {get_param: RoleParameters}
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Containerized service clustercheck using composable services.
|
|
value:
|
|
service_name: clustercheck
|
|
config_settings:
|
|
map_merge:
|
|
- get_attr: [MysqlPuppetBase, role_data, config_settings]
|
|
- tripleo::profile::pacemaker::clustercheck::bind_address:
|
|
str_replace:
|
|
template:
|
|
"%{hiera('fqdn_$NETWORK')}"
|
|
params:
|
|
$NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
|
|
# BEGIN DOCKER SETTINGS #
|
|
puppet_config:
|
|
config_volume: clustercheck
|
|
puppet_tags: file # set this even though file is the default
|
|
step_config: "include ::tripleo::profile::pacemaker::clustercheck"
|
|
config_image: {get_param: ContainerClustercheckConfigImage}
|
|
kolla_config:
|
|
/var/lib/kolla/config_files/clustercheck.json:
|
|
command: /usr/sbin/xinetd -dontfork
|
|
config_files:
|
|
- source: "/var/lib/kolla/config_files/src/*"
|
|
dest: "/"
|
|
merge: true
|
|
preserve_properties: true
|
|
docker_config:
|
|
step_2:
|
|
clustercheck:
|
|
start_order: 1
|
|
image: {get_param: ContainerClustercheckImage}
|
|
restart: always
|
|
net: host
|
|
healthcheck:
|
|
test: /openstack/healthcheck
|
|
volumes:
|
|
list_concat:
|
|
- {get_attr: [ContainersCommon, volumes]}
|
|
-
|
|
- /var/lib/kolla/config_files/clustercheck.json:/var/lib/kolla/config_files/config.json
|
|
- /var/lib/config-data/puppet-generated/clustercheck/:/var/lib/kolla/config_files/src:ro
|
|
- /var/lib/mysql:/var/lib/mysql
|
|
environment:
|
|
KOLLA_CONFIG_STRATEGY: COPY_ALWAYS
|
|
host_prep_tasks:
|
|
upgrade_tasks:
|
|
update_tasks:
|
|
# Nothing: It's not managed by pacemaker, so let paunch do it.
|
|
external_upgrade_tasks:
|
|
- when:
|
|
- step|int == 1
|
|
tags:
|
|
- never
|
|
- system_upgrade_transfer_data
|
|
- system_upgrade_stop_services
|
|
block:
|
|
- name: Stop clustercheck container
|
|
import_role:
|
|
name: tripleo-container-stop
|
|
vars:
|
|
tripleo_containers_to_stop:
|
|
- clustercheck
|
|
tripleo_delegate_to: "{{ groups['clustercheck'] | default([]) }}"
|