From f567ba6dea9ef6147ba9214606f9a4d434e99eb1 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Tue, 28 Oct 2014 18:00:40 -0400 Subject: Controller: Split out software config This is a step towards supporting pluggable software configurations in the heat templates. By moving controller-config out of controller.yaml we make it possible to define alternate implementations by changing the OS::TripleO::ControllerConfig value in the overcloud-resource-registry.yaml heat environment file. Change-Id: I228216a0b55ff2d384b281d9ad2a61b93d58dab9 --- controller.yaml | 365 ++++++++++++++++---------------------------------------- 1 file changed, 103 insertions(+), 262 deletions(-) (limited to 'controller.yaml') diff --git a/controller.yaml b/controller.yaml index 9b3745dc..739b683c 100644 --- a/controller.yaml +++ b/controller.yaml @@ -376,267 +376,10 @@ resources: user_data_format: SOFTWARE_CONFIG ControllerConfig: - type: OS::Heat::StructuredConfig + type: OS::TripleO::Controller::SoftwareConfig properties: - group: os-apply-config - config: - admin-password: {get_param: AdminPassword} - admin-token: {get_param: AdminToken} - bootstack: - public_interface_ip: {get_param: NeutronPublicInterfaceIP} - bootstrap_host: - nodeid: {get_input: bootstack_nodeid} - database: - host: &database_host - {get_param: VirtualIP} - cinder: - db: - list_join: - - '' - - - mysql://cinder:unset@ - - *database_host - - /cinder - debug: {get_param: Debug} - volume_size_mb: {get_param: CinderLVMLoopDeviceSize} - service-password: {get_param: CinderPassword} - iscsi-helper: {get_param: CinderISCSIHelper} - controller-address: {get_input: controller_host} - corosync: - bindnetaddr: {get_input: controller_host} - mcastport: 5577 - pacemaker: - stonith_enabled : false - recheck_interval : 5 - quorum_policy : ignore - db-password: unset - glance: - registry: - host: {get_input: controller_virtual_ip} - backend: swift - db: - list_join: - - '' - - - mysql://glance:unset@ - - *database_host - - /glance - debug: {get_param: Debug} - host: {get_input: controller_virtual_ip} - port: {get_param: GlancePort} - protocol: {get_param: GlanceProtocol} - service-password: {get_param: GlancePassword} - swift-store-user: service:glance - swift-store-key: {get_param: GlancePassword} - notifier-strategy: {get_param: GlanceNotifierStrategy} - log-file: {get_param: GlanceLogFile} - heat: - admin_password: {get_param: HeatPassword} - admin_tenant_name: service - admin_user: heat - auth_encryption_key: unset___________ - db: - list_join: - - '' - - - mysql://heat:unset@ - - *database_host - - /heat - debug: {get_param: Debug} - stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword} - watch_server_url: {get_input: heat.watch_server_url} - metadata_server_url: {get_input: heat.metadata_server_url} - waitcondition_server_url: {get_input: heat.waitcondition_server_url} - keystone: - db: - list_join: - - '' - - - mysql://keystone:unset@ - - *database_host - - /keystone - debug: {get_param: Debug} - host: {get_input: controller_virtual_ip} - ca_certificate: {get_param: KeystoneCACertificate} - signing_key: {get_param: KeystoneSigningKey} - signing_certificate: {get_param: KeystoneSigningCertificate} - ssl: - certificate: {get_param: KeystoneSSLCertificate} - certificate_key: {get_param: KeystoneSSLCertificateKey} - mysql: - innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} - local_bind: true - root-password: {get_param: MysqlRootPassword} - cluster_name: - str_replace: - template: tripleo-CLUSTER - params: - CLUSTER: {get_param: MysqlClusterUniquePart} - neutron: - debug: {get_param: Debug} - flat-networks: {get_param: NeutronFlatNetworks} - host: {get_input: controller_virtual_ip} - metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret} - agent_mode: {get_param: NeutronAgentMode} - router_distributed: {get_param: NeutronDVR} - mechanism_drivers: {get_param: NeutronMechanismDrivers} - allow_automatic_l3agent_failover: {get_param: NeutronAllowL3AgentFailover} - ovs: - enable_tunneling: {get_input: neutron_enable_tunneling} - local_ip: {get_input: controller_host} - network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} - bridge_mappings: {get_param: NeutronBridgeMappings} - public_interface: {get_param: NeutronPublicInterface} - public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice} - public_interface_route: {get_param: NeutronPublicInterfaceDefaultRoute} - public_interface_tag: {get_param: NeutronPublicInterfaceTag} - physical_bridge: br-ex - tenant_network_type: {get_param: NeutronNetworkType} - tunnel_types: {get_param: NeutronTunnelTypes} - ovs_db: - list_join: - - '' - - - mysql://neutron:unset@ - - *database_host - - /ovs_neutron?charset=utf8 - service-password: {get_param: NeutronPassword} - dnsmasq-options: {get_param: NeutronDnsmasqOptions} - ceilometer: - db: - list_join: - - '' - - - mysql://ceilometer:unset@ - - *database_host - - /ceilometer - debug: {get_param: Debug} - metering_secret: {get_param: CeilometerMeteringSecret} - service-password: {get_param: CeilometerPassword} - snmpd: - export_MIB: UCD-SNMP-MIB - readonly_user_name: {get_param: SnmpdReadonlyUserName} - readonly_user_password: {get_param: SnmpdReadonlyUserPassword} - nova: - compute_driver: libvirt.LibvirtDriver - db: - list_join: - - '' - - - mysql://nova:unset@ - - *database_host - - /nova - default_floating_pool: - ext-net - host: {get_input: controller_virtual_ip} - metadata-proxy: true - service-password: {get_param: NovaPassword} - rabbit: - host: {get_input: controller_virtual_ip} - username: {get_param: RabbitUserName} - password: {get_param: RabbitPassword} - cookie: {get_param: RabbitCookie} - rabbit_client_use_ssl: {get_param: RabbitClientUseSSL} - rabbit_port: {get_param: RabbitClientPort} - ntp: - servers: - - {server: {get_param: NtpServer}, fudge: "stratum 0"} - virtual_interfaces: - instances: - - vrrp_instance_name: VI_CONTROL - virtual_router_id: 51 - keepalive_interface: {get_param: ControlVirtualInterface} - priority: 101 - virtual_ips: - - ip: {get_param: VirtualIP} - interface: {get_param: ControlVirtualInterface} - - vrrp_instance_name: VI_PUBLIC - virtual_router_id: 52 - keepalive_interface: {get_param: PublicVirtualInterface} - priority: 101 - virtual_ips: - - ip: {get_param: PublicVirtualIP} - interface: {get_param: PublicVirtualInterface} - vrrp_sync_groups: - - name: VG1 - members: - - VI_CONTROL - - VI_PUBLIC - keepalived: - keepalive_interface: {get_param: PublicVirtualInterface} - priority: 101 - virtual_ips: - - - ip: {get_param: VirtualIP} - interface: {get_param: ControlVirtualInterface} - - - ip: {get_param: PublicVirtualIP} - interface: {get_param: PublicVirtualInterface} - haproxy: - net_binds: - - ip: {get_param: VirtualIP} - options: - - option httpchk GET / - services: - - name: keystone_admin - port: 35357 - net_binds: &public_binds - - ip: {get_param: VirtualIP} - - ip: {get_param: PublicVirtualIP} - - name: keystone_public - port: 5000 - net_binds: *public_binds - - name: horizon - port: 80 - net_binds: *public_binds - - name: neutron - port: 9696 - net_binds: *public_binds - - name: cinder - port: 8776 - net_binds: *public_binds - - name: glance_api - port: 9292 - net_binds: *public_binds - - name: glance_registry - port: 9191 - net_binds: *public_binds - options: # overwrite options as glace_reg needs auth for http req - - name: heat_api - port: 8004 - net_binds: *public_binds - - name: heat_cloudwatch - port: 8003 - net_binds: *public_binds - - name: heat_cfn - port: 8000 - net_binds: *public_binds - - name: mysql - port: 3306 - extra_server_params: - - backup - options: - - timeout client 0 - - timeout server 0 - - name: nova_ec2 - port: 8773 - - name: nova_osapi - port: 8774 - net_binds: *public_binds - - name: nova_metadata - port: 8775 - net_binds: *public_binds - - name: nova_novncproxy - port: 6080 - net_binds: *public_binds - - name: ceilometer - port: 8777 - net_binds: *public_binds - options: # overwrite options as ceil needs auth for http req - - name: swift_proxy_server - port: 8080 - net_binds: *public_binds - options: - - option httpchk GET /info - - name: rabbitmq - port: 5672 - options: - - timeout client 0 - - timeout server 0 - - maxconn 1500 + # allow configs to create sub-resources attached to the controller + controller_id: {get_resource: Controller} ControllerPassthroughConfig: type: OS::Heat::StructuredConfig @@ -651,10 +394,10 @@ resources: config: {get_input: passthrough_config_specific} ControllerDeployment: - type: OS::Heat::StructuredDeployment + type: OS::TripleO::SoftwareDeployment properties: signal_transport: NO_SIGNAL - config: {get_resource: ControllerConfig} + config: {get_attr: [ControllerConfig, config_id]} server: {get_resource: Controller} input_values: bootstack_nodeid: {get_attr: [Controller, name]} @@ -679,6 +422,104 @@ resources: - - 'http://' - {get_param: VirtualIP} - ':8000/v1/waitcondition' + admin_password: {get_param: AdminPassword} + admin_token: {get_param: AdminToken} + neutron_public_interface_ip: {get_param: NeutronPublicInterfaceIP} + debug: {get_param: Debug} + cinder_lvm_loop_device_size: {get_param: CinderLVMLoopDeviceSize} + cinder_password: {get_param: CinderPassword} + cinder_iscsi_helper: {get_param: CinderISCSIHelper} + cinder_dsn: + list_join: + - '' + - - 'mysql://cinder:unset@' + - {get_param: VirtualIP} + - '/cinder' + glance_port: {get_param: GlancePort} + glance_protocol: {get_param: GlanceProtocol} + glance_password: {get_param: GlancePassword} + glance_notifier_strategy: {get_param: GlanceNotifierStrategy} + glance_log_file: {get_param: GlanceLogFile} + glance_dsn: + list_join: + - '' + - - 'mysql://glance:unset@' + - {get_param: VirtualIP} + - '/glance' + heat_password: {get_param: HeatPassword} + heat_stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword} + heat_dsn: + list_join: + - '' + - - 'mysql://heat:unset@' + - {get_param: VirtualIP} + - '/heat' + keystone_ca_certificate: {get_param: KeystoneCACertificate} + keystone_signing_key: {get_param: KeystoneSigningKey} + keystone_signing_certificate: {get_param: KeystoneSigningCertificate} + keystone_ssl_certificate: {get_param: KeystoneSSLCertificate} + keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey} + keystone_dsn: + list_join: + - '' + - - 'mysql://keystone:unset@' + - {get_param: VirtualIP} + - '/keystone' + mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} + mysql_root_password: {get_param: MysqlRootPassword} + mysql_cluster_name: + str_replace: + template: tripleo-CLUSTER + params: + CLUSTER: {get_param: MysqlClusterUniquePart} + neutron_flat_networks: {get_param: NeutronFlatNetworks} + neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret} + neutron_agent_mode: {get_param: NeutronAgentMode} + neutron_router_distributed: {get_param: NeutronDVR} + neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers} + neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover} + neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} + neutron_bridge_mappings: {get_param: NeutronBridgeMappings} + neutron_public_interface: {get_param: NeutronPublicInterface} + neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice} + neutron_public_interface_default_route: {get_param: NeutronPublicInterfaceDefaultRoute} + neutron_public_interface_tag: {get_param: NeutronPublicInterfaceTag} + neutron_tenant_network_type: {get_param: NeutronNetworkType} + neutron_tunnel_types: {get_param: NeutronTunnelTypes} + neutron_password: {get_param: NeutronPassword} + neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions} + neutron_dsn: + list_join: + - '' + - - 'mysql://neutron:unset@' + - {get_param: VirtualIP} + - '/ovs_neutron?charset=utf8' + ceilometer_metering_secret: {get_param: CeilometerMeteringSecret} + ceilometer_password: {get_param: CeilometerPassword} + ceilometer_dsn: + list_join: + - '' + - - 'mysql://ceilometer:unset@' + - {get_param: VirtualIP} + - '/ceilometer' + snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} + snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} + nova_password: {get_param: NovaPassword} + nova_dsn: + list_join: + - '' + - - 'mysql://nova:unset@' + - {get_param: VirtualIP} + - '/nova' + rabbit_username: {get_param: RabbitUserName} + rabbit_password: {get_param: RabbitPassword} + rabbit_cookie: {get_param: RabbitCookie} + rabbit_client_use_ssl: {get_param: RabbitClientUseSSL} + rabbit_client_port: {get_param: RabbitClientPort} + ntp_server: {get_param: NtpServer} + control_virtual_interface: {get_param: ControlVirtualInterface} + public_virtual_interface: {get_param: PublicVirtualInterface} + public_virtual_ip: {get_param: PublicVirtualIP} SSLConfig: type: OS::Heat::StructuredConfig -- cgit 1.2.3-korg