{"heat_template_version": "wallaby", "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\n", "parameters": {"ContainerClustercheckImage": {"description": "image", "type": "string", "tags": ["role_specific"]}, "ContainerClustercheckConfigImage": {"description": "The container image to use for the clustercheck config_volume", "type": "string", "tags": ["role_specific"]}, "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. Use parameter_merge_strategies to merge it with the defaults.", "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"}, "ClustercheckListener": {"default": "socat", "description": "How to expose the clustercheck service over TCP", "type": "string", "constraints": [{"allowed_values": ["socat", "xinetd"]}]}}, "resources": {"ContainersCommon": {"type": "file:///usr/share/openstack-tripleo-heat-templates/deployment/containers-common.yaml"}, "MysqlPuppetBase": {"type": "file:///usr/share/openstack-tripleo-heat-templates/deployment/database/mysql-pacemaker-puppet.yaml", "properties": {"EndpointMap": {"get_param": "EndpointMap"}, "ServiceData": {"get_param": "ServiceData"}, "ServiceNetMap": {"get_param": "ServiceNetMap"}, "RoleName": {"get_param": "RoleName"}, "RoleParameters": {"get_param": "RoleParameters"}}}, "RoleParametersValue": {"type": "OS::Heat::Value", "properties": {"type": "json", "value": {"map_replace": [{"map_replace": [{"ContainerClustercheckImage": "ContainerClustercheckImage", "ContainerClustercheckConfigImage": "ContainerClustercheckConfigImage"}, {"values": {"get_param": ["RoleParameters"]}}]}, {"values": {"ContainerClustercheckImage": {"get_param": "ContainerClustercheckImage"}, "ContainerClustercheckConfigImage": {"get_param": "ContainerClustercheckConfigImage"}}}]}}}}, "conditions": {"socat_listener": {"equals": [{"get_param": "ClustercheckListener"}, "socat"]}}, "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": {"$FQDN": {"if": ["socat_listener", "", "fqdn_"]}, "$NETWORK": {"get_param": ["ServiceNetMap", "MysqlNetwork"]}}}}}]}, "puppet_config": {"config_volume": "clustercheck", "puppet_tags": "file", "step_config": "include tripleo::profile::pacemaker::clustercheck", "config_image": {"get_attr": ["RoleParametersValue", "value", "ContainerClustercheckConfigImage"]}}, "kolla_config": {"/var/lib/kolla/config_files/clustercheck.json": {"command": {"if": ["socat_listener", "bash -c $* -- eval source /etc/sysconfig/clustercheck; exec socat -T\"${TRIPLEO_HEALTHCHECK_TIMEOUT:-2}\" \"$TRIPLEO_SOCAT_BIND\" system:\"grep -qPe \\\"^\\\\r\\$\\\" && /usr/bin/clustercheck\"", "/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_attr": ["RoleParametersValue", "value", "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": null, "upgrade_tasks": null, "update_tasks": null, "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'] | difference(groups['excluded_overcloud']) }}"}}]}]}}}}