tripleo-heat-templates/puppet/vip-config.yaml
Dan Prince 26dee879c0 puppet controller role: per service VIP settings
This patch refactors the puppet controller role so that it
makes use of per service VIP settings for each service.

Previously the VIP for the ctlplane was hard wired to
many of the controller service. With this patch we have
the ability to isolate traffic for services which
made use of the ctlplane and public VIPs for their
settings.

The implementation includes:

 * stops the use of the VirtualIP and PublicVirtualIP within the
   controller role. These parameters have now been replaced with
   per service heat parameters for the controller nested stack which
   are determined via VipMap based on per service settings in the heat
   environment.

 * All VIP configuration is now moved into puppet/vip-config.yaml.
   This made sense so we could deprecate the use of the VirtualIP
   and PublicVirtualIP settings above.

 * The puppet manifests for the controller were cleaned up for several
   to use Hiera directly instead of constructing URLs based on the
   static controller and public network VIPs. This improvement
   was something we wanted to do anyways and made the implementation
   cleaner.

Change-Id: I9b9a15be67f74bec97366408f7047acfd6ea0ec6
2015-06-04 13:28:00 -04:00

43 lines
1.9 KiB
YAML

heat_template_version: 2015-04-30
description: >
Configure hieradata for service -> virtual IP mappings.
resources:
VipConfigImpl:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hiera:
datafiles:
vip_data:
mapped_data:
keystone_admin_api_vip: {get_input: keystone_admin_api_vip}
keystone_public_api_vip: {get_input: keystone_public_api_vip}
neutron_api_vip: {get_input: neutron_api_vip}
cinder_api_vip: {get_input: cinder_api_vip}
glance_api_vip: {get_input: glance_api_vip}
glance_registry_vip: {get_input: glance_registry_vip}
swift_proxy_vip: {get_input: swift_proxy_vip}
nova_api_vip: {get_input: nova_api_vip}
nova_metadata_vip: {get_input: nova_metadata_vip}
ceilometer_api_vip: {get_input: ceilometer_api_vip}
heat_api_vip: {get_input: heat_api_vip}
horizon_vip: {get_input: horizon_vip}
redis_vip: {get_input: redis_vip}
mysql_vip: {get_input: mysql_vip}
mysql_vip: {get_input: mysql_vip}
tripleo::loadbalancer::public_virtual_ip: {get_input: public_virtual_ip}
tripleo::loadbalancer::controller_virtual_ip: {get_input: control_virtual_ip}
tripleo::loadbalancer::internal_api_virtual_ip: {get_input: internal_api_virtual_ip}
tripleo::loadbalancer::storage_virtual_ip: {get_input: storage_virtual_ip}
tripleo::loadbalancer::storage_mgmt_virtual_ip: {get_input: storage_mgmt_virtual_ip}
tripleo::redis_notification::haproxy_monitor_ip: {get_input: control_virtual_ip}
outputs:
OS::stack_id:
description: The VipConfigImpl resource.
value: {get_resource: VipConfigImpl}