tripleo-heat-templates/deployment/pacemaker/clustercheck-container-pupp...

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([]) }}"