aboutsummaryrefslogtreecommitdiffstats
path: root/controller-config-puppet.yaml
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-01-14 14:58:35 -0500
committerDan Prince <dprince@redhat.com>2015-01-27 09:04:37 -0500
commit7f09f73a314ac0412a4410582a143899acf0528c (patch)
tree07755f7322cb5f905b1ccd60a7181a8afca9d279 /controller-config-puppet.yaml
parentc0328095f17796fb1b87a1da355f40dda10c06fe (diff)
Controller: consolidated nested stack
In I228216a0b55ff2d384b281d9ad2a61b93d58dab9 we split out just the Controller software config in an effort to provide hooks for alternate implementations (puppet). This sort of worked but caused quirky ordering issues with signal handling. It also causes problems for Tuskar which would prefer to think of these nested stacks and not have us split out just the software configs like this. This patch moves all the controller related stuff for our two implementations: controller.yaml: is used by os-apply-config (uses the tripleo-image-elements) controller-puppet.yaml: uses stackforge puppet-* modules for configuration By duplicating the entire controller in this manner we make it much easier to create dependencies and implement proper signal handling. The only (temporary) downside is the duplication of parameters most of which will eventually go away when we move towards using the global parameters via Heat environment files instead. Change-Id: Iaf3c889d7c8815f862308cd8e15ce1010059f5c6
Diffstat (limited to 'controller-config-puppet.yaml')
-rw-r--r--controller-config-puppet.yaml238
1 files changed, 0 insertions, 238 deletions
diff --git a/controller-config-puppet.yaml b/controller-config-puppet.yaml
deleted file mode 100644
index 06d991d2..00000000
--- a/controller-config-puppet.yaml
+++ /dev/null
@@ -1,238 +0,0 @@
-# Copyright 2014 Red Hat, Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-heat_template_version: 2014-10-16
-
-description: >
- Puppet Software Config for the Controller.
-
-parameters:
- controller_id:
- type: string
- hidden: true
-
-resources:
-
- # The first manifest we execute is to setup HAProxy/Keepalived.
- # NOTE(dprince): this example uses a composition class
- # on the puppet side (loadbalancer.pp). This seemed like the
- # cleanest way to encapulate the puppet resources definitions
- # for HAProxy and Keepalived.
- ControllerLoadbalancerPuppetConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: puppet
- options:
- enable_hiera: True
- enable_facter: False
- inputs:
- outputs:
- - name: result
- config:
- get_file: puppet/loadbalancer.pp
-
- ControllerLoadbalancerPuppetDeployment:
- type: OS::Heat::StructuredDeployment
- properties:
- name: puppet_1
- server: {get_param: controller_id}
- config: {get_resource: ControllerLoadbalancerPuppetConfig}
- input_values:
- signal_transport: NO_SIGNAL
-
- ControllerPuppetConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: puppet
- options:
- enable_hiera: True
- enable_facter: False
- inputs:
- - name: step
- outputs:
- - name: result
- config:
- get_file: puppet/overcloud_controller.pp
-
- # Step through a series of two more Puppet runs using the same manifest.
- # NOTE(dprince): Heat breakpoints would make for a really cool way to step
- # through breakpoints in a controlled manner across the entire cluster
- ControllerPuppetDeploymentTwo:
- type: OS::Heat::StructuredDeployment
- properties:
- name: puppet_2
- server: {get_param: controller_id}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 1
- signal_transport: NO_SIGNAL
- actions: ['CREATE'] # no need for two passes on an UPDATE
-
- ControllerPuppetDeploymentThree:
- type: OS::Heat::StructuredDeployment
- properties:
- name: puppet_3
- server: {get_param: controller_id}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 2
- signal_transport: NO_SIGNAL
-
- # Map heat metadata into hiera datafiles
- ControllerConfigImpl:
- type: OS::Heat::StructuredConfig
- properties:
- group: os-apply-config
- config:
- hiera:
- hierarchy:
- - heat_config_%{::deploy_config_name}
- - controller
- - common
- datafiles:
- common:
- raw_data: {get_file: puppet/hieradata/common.yaml}
- controller:
- raw_data: {get_file: puppet/hieradata/controller.yaml}
- oac_data: # data we map in from other OAC configurations
- bootstrap_nodeid: bootstrap_host.bootstrap_nodeid
- mapped_data: # data supplied directly to this deployment configuration, etc
- debug: {get_input: debug}
- bootstack_nodeid: {get_input: bootstack_nodeid}
- controller_host: {get_input: controller_host} #local-ipv4
- # Cinder
- cinder_lvm_loop_device_size: {get_input: cinder_lvm_loop_device_size}
- cinder::volume::iscsi::iscsi_helper: {get_input: cinder_iscsi_helper}
- cinder::volume::iscsi::iscsi_ip_address: {get_input: controller_host}
- cinder::database_connection: {get_input: cinder_dsn}
- cinder::api::keystone_password: {get_input: cinder_password}
- cinder::api::keystone_auth_host: {get_input: controller_virtual_ip}
- cinder::api::bind_host: {get_input: controller_host}
- cinder::rabbit_userid: {get_input: rabbit_username}
- cinder::rabbit_password: {get_input: rabbit_password}
- #cinder::debug: {get_input: debug}
- # Glance
- glance::api::bind_port: {get_input: glance_port}
- glance::api::bind_host: {get_input: controller_host}
- glance::api::auth_host: {get_input: controller_virtual_ip}
- glance::api::registry_host: {get_input: controller_host}
- glance::api::keystone_password: {get_input: glance_password}
- # used to construct glance_api_servers
- glance_port: {get_input: glance_port}
- glance_protocol: {get_input: glance_protocol}
- glance_notifier_strategy: {get_input: glance_notifier_strategy}
- glance_log_file: {get_input: glance_log_file}
- glance_log_file: {get_input: glance_log_file}
- glance::api::database_connection: {get_input: glance_dsn}
- glance::registry::keystone_password: {get_input: glance_password}
- glance::registry::database_connection: {get_input: glance_dsn}
- glance::registry::bind_host: {get_input: controller_host}
- glance::registry::auth_host: {get_input: controller_virtual_ip}
- # Heat
- heat_password: {get_input: heat_password}
- heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
- heat_dsn: {get_input: heat_dsn}
- heat.watch_server_url: {get_input: heat.watch_server_url}
- heat.metadata_server_url: {get_input: heat.metadata_server_url}
- heat.waitcondition_server_url: {get_input: heat.waitcondition_server_url}
- # Keystone
- keystone::admin_token: {get_input: admin_token}
- keystone_ca_certificate: {get_input: keystone_ca_certificate}
- keystone_signing_key: {get_input: keystone_signing_key}
- keystone_signing_certificate: {get_input: keystone_signing_certificate}
- keystone_ssl_certificate: {get_input: keystone_ssl_certificate}
- keystone_ssl_certificate_key: {get_input: keystone_ssl_certificate_key}
- keystone::database_connection: {get_input: keystone_dsn}
- keystone::public_bind_host: {get_input: controller_host}
- keystone::admin_bind_host: {get_input: controller_host}
- #keystone::debug: {get_input: debug}
- # MySQL
- admin_password: {get_input: admin_password}
- mysql_innodb_buffer_pool_size: {get_input: mysql_innodb_buffer_pool_size}
- mysql_root_password: {get_input: mysql_root_password}
- mysql_cluster_name: {get_input: mysql_cluster_name}
- # Neutron
- neutron::bind_host: {get_input: controller_host}
- neutron::rabbit_password: {get_input: rabbit_password}
- neutron::rabbit_user: {get_input: rabbit_user}
- #neutron::debug: {get_input: debug}
- neutron::server::auth_host: {get_input: controller_virtual_ip}
- neutron::server::database_connection: {get_input: neutron_dsn}
- neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
- neutron::agents::ml2::ovs::local_ip: {get_input: controller_host}
- neutron_flat_networks: {get_input: neutron_flat_networks}
- neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
- neutron_agent_mode: {get_input: neutron_agent_mode}
- neutron_router_distributed: {get_input: neutron_router_distributed}
- neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
- neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
- neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
- neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
- neutron_public_interface: {get_input: neutron_public_interface}
- neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
- neutron_public_interface_default_route: {get_input: neutron_public_interface_default_route}
- neutron_public_interface_tag: {get_input: neutron_public_interface_tag}
- neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
- neutron_tunnel_types: {get_input: neutron_tunnel_types}
- neutron::server::auth_password: {get_input: neutron_password}
- neutron::agents::metadata::auth_password: {get_input: neutron_password}
- neutron_dnsmasq_options: {get_input: neutron_dnsmasq_options}
- neutron_dsn: {get_input: neutron_dsn}
- # Ceilometer
- ceilometer_metering_secret: {get_input: ceilometer_metering_secret}
- ceilometer_password: {get_input: ceilometer_password}
- ceilometer_dsn: {get_input: ceilometer_dsn}
- snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
- snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
- # Nova
- nova::rabbit_userid: {get_input: rabbit_username}
- nova::rabbit_password: {get_input: rabbit_password}
- nova::api::auth_host: {get_input: controller_virtual_ip}
- nova::api::api_bind_address: {get_input: controller_host}
- nova::api::metadata_listen: {get_input: controller_host}
- nova::api::admin_password: {get_input: nova_password}
- nova::database_connection: {get_input: nova_dsn}
- nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
- # Rabbit
- rabbit_username: {get_input: rabbit_username}
- rabbit_password: {get_input: rabbit_password}
- rabbit_cookie: {get_input: rabbit_cookie}
- rabbit_client_use_ssl: {get_input: rabbit_client_use_ssl}
- rabbit_client_port: {get_input: rabbit_client_port}
- # Misc
- neutron_public_interface_ip: {get_input: neutron_public_interface_ip}
- ntp_server: {get_input: ntp_server}
- control_virtual_interface: {get_input: control_virtual_interface}
- controller_virtual_ip: {get_input: controller_virtual_ip}
- public_virtual_interface: {get_input: public_virtual_interface}
- public_virtual_ip: {get_input: public_virtual_ip}
- # Load Balancer (composition class parameters)
- tripleo::loadbalancer::keystone_admin: true
- tripleo::loadbalancer::keystone_public: true
- tripleo::loadbalancer::neutron: true
- tripleo::loadbalancer::cinder: true
- tripleo::loadbalancer::glance_api: true
- tripleo::loadbalancer::glance_registry: true
- tripleo::loadbalancer::nova_ec2: true
- tripleo::loadbalancer::nova_osapi: true
- tripleo::loadbalancer::nova_metadata: true
- tripleo::loadbalancer::nova_novncproxy: true
- tripleo::loadbalancer::mysql: true
- tripleo::loadbalancer::rabbitmq: true
-
-outputs:
- config_id:
- description: The ID of the ControllerConfigImpl resource.
- value:
- {get_resource: ControllerConfigImpl}