{"heat_template_version": "wallaby", "description": "OpenStack containerized Ceilometer Agent Compute service\n", "parameters": {"ContainerCeilometerComputeImage": {"description": "image", "type": "string", "tags": ["role_specific"]}, "ContainerCeilometerConfigImage": {"description": "The container image to use for the ceilometer 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"}, "MonitoringSubscriptionCeilometerCompute": {"default": "overcloud-ceilometer-agent-compute", "type": "string"}, "InstanceDiscoveryMethod": {"default": "libvirt_metadata", "description": "Method used to discover instances running on compute node", "type": "string", "constraints": [{"allowed_values": ["naive", "libvirt_metadata", "workload_partitioning"]}]}, "RedisPassword": {"description": "The password for the redis service account.", "type": "string", "hidden": true}, "CeilometerEnableTenantDiscovery": {"default": false, "description": "Identify user and project names from polled metrics.", "type": "boolean"}}, "resources": {"ContainersCommon": {"type": "file:///usr/share/openstack-tripleo-heat-templates/deployment/containers-common.yaml"}, "CeilometerServiceBase": {"type": "file:///usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-base-container-puppet.yaml", "properties": {"ServiceData": {"get_param": "ServiceData"}, "ServiceNetMap": {"get_param": "ServiceNetMap"}, "EndpointMap": {"get_param": "EndpointMap"}, "RoleName": {"get_param": "RoleName"}, "RoleParameters": {"get_param": "RoleParameters"}}}, "RoleParametersValue": {"type": "OS::Heat::Value", "properties": {"type": "json", "value": {"map_replace": [{"map_replace": [{"ContainerCeilometerComputeImage": "ContainerCeilometerComputeImage", "ContainerCeilometerConfigImage": "ContainerCeilometerConfigImage"}, {"values": {"get_param": ["RoleParameters"]}}]}, {"values": {"ContainerCeilometerComputeImage": {"get_param": "ContainerCeilometerComputeImage"}, "ContainerCeilometerConfigImage": {"get_param": "ContainerCeilometerConfigImage"}}}]}}}}, "outputs": {"role_data": {"description": "Role data for the Ceilometer Agent Compute role.", "value": {"service_name": "ceilometer_agent_compute", "monitoring_subscription": {"get_param": "MonitoringSubscriptionCeilometerCompute"}, "config_settings": {"map_merge": [{"get_attr": ["CeilometerServiceBase", "role_data", "config_settings"]}, {"ceilometer::agent::polling::instance_discovery_method": {"get_param": "InstanceDiscoveryMethod"}}, {"ceilometer_redis_password": {"get_param": "RedisPassword"}, "compute_namespace": true, "ceilometer::agent::polling::tenant_name_discovery": {"get_param": "CeilometerEnableTenantDiscovery"}}]}, "service_config_settings": {"get_attr": ["CeilometerServiceBase", "role_data", "service_config_settings"]}, "puppet_config": {"config_volume": "ceilometer", "puppet_tags": "ceilometer_config", "step_config": "include tripleo::profile::base::ceilometer::agent::polling", "config_image": {"get_attr": ["RoleParametersValue", "value", "ContainerCeilometerConfigImage"]}}, "kolla_config": {"/var/lib/kolla/config_files/ceilometer_agent_compute.json": {"command": "/usr/bin/ceilometer-polling --polling-namespaces compute --logfile /var/log/ceilometer/compute.log", "config_files": [{"source": "/var/lib/kolla/config_files/src/*", "dest": "/", "merge": true, "preserve_properties": true}]}}, "docker_config": {"step_4": {"ceilometer_agent_compute": {"image": {"get_attr": ["RoleParametersValue", "value", "ContainerCeilometerComputeImage"]}, "net": "host", "privileged": false, "restart": "always", "depends_on": ["tripleo_nova_libvirt.target"], "healthcheck": {"test": "/openstack/healthcheck"}, "volumes": {"list_concat": [{"get_attr": ["ContainersCommon", "volumes"]}, ["/var/lib/kolla/config_files/ceilometer_agent_compute.json:/var/lib/kolla/config_files/config.json:ro", "/var/lib/config-data/puppet-generated/ceilometer:/var/lib/kolla/config_files/src:ro", "/run/libvirt:/run/libvirt:shared,z", "/var/log/containers/ceilometer:/var/log/ceilometer:z"]]}, "environment": {"KOLLA_CONFIG_STRATEGY": "COPY_ALWAYS"}}}}, "host_prep_tasks": [{"name": "create persistent directories", "file": {"path": "{{ item.path }}", "state": "directory", "setype": "{{ item.setype }}", "mode": "{{ item.mode }}"}, "with_items": [{"path": "/var/log/containers/ceilometer", "setype": "container_file_t", "mode": "0750"}]}, {"name": "enable virt_sandbox_use_netlink for healthcheck", "seboolean": {"name": "virt_sandbox_use_netlink", "persistent": true, "state": true}, "when": ["ansible_facts.selinux is defined", "ansible_facts.selinux.status == \"enabled\""]}]}}}}