From eaa52183af833d286d7e5c2f1b58be3df346d2de Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Wed, 15 Oct 2014 11:18:42 -0400 Subject: Split out Nova software config This is a step towards supporting pluggable software configurations in the heat templates. By moving compute-config out of compute.yaml we make it possible to define alternate implementations by changing the OS::TripleO::Compute::SoftwareConfig value in the overcloud-resource-registry.yaml heat environment file. Co-Authored-By: Steve Hardy Change-Id: I250dc1a8c02626cf7d1a5d2ce92706504ec0c7de --- compute-config.yaml | 73 ++++++++++++++++++++++++++++++++++++++++ compute.yaml | 66 +++--------------------------------- overcloud-resource-registry.yaml | 2 ++ 3 files changed, 79 insertions(+), 62 deletions(-) create mode 100644 compute-config.yaml diff --git a/compute-config.yaml b/compute-config.yaml new file mode 100644 index 00000000..4d1e3cec --- /dev/null +++ b/compute-config.yaml @@ -0,0 +1,73 @@ +heat_template_version: 2014-10-16 + +description: > + Software Config for Nova Compute. + +resources: + NovaComputeConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + nova: + compute_driver: { get_input: nova_compute_driver } + compute_libvirt_type: { get_input: nova_compute_libvirt_type } + db: {get_input: nova_dsn} + debug: {get_input: debug} + host: {get_input: nova_api_host} + public_ip: {get_input: nova_public_ip} + service-password: {get_input: nova_password} + ceilometer: + db: {get_input: ceilometer_dsn} + debug: {get_input: debug} + metering_secret: {get_input: ceilometer_metering_secret} + service-password: {get_input: ceilometer_password} + compute_agent: {get_input: ceilometer_compute_agent} + snmpd: + export_MIB: UCD-SNMP-MIB + readonly_user_name: {get_input: snmpd_readonly_user_name} + readonly_user_password: {get_input: snmpd_readonly_user_password} + glance: + debug: {get_input: debug} + host: {get_input: glance_host} + port: {get_input: glance_port} + protocol: {get_input: glance_protocol} + keystone: + debug: {get_input: debug} + host: {get_input: keystone_host} + neutron: + debug: {get_input: debug} + flat-networks: {get_input: neutron_flat_networks} + host: {get_input: neutron_host} + ovs_db: {get_input: neutron_dsn} + ovs: + local_ip: {get_input: neutron_local_ip} + tenant_network_type: {get_input: neutron_tenant_network_type} + tunnel_types: {get_input: neutron_tunnel_types} + network_vlan_ranges: {get_input: neutron_network_vlan_ranges} + bridge_mappings: {get_input: neutron_bridge_mappings} + enable_tunneling: {get_input: neutron_enable_tunneling} + physical_bridge: {get_input: neutron_physical_bridge} + public_interface: {get_input: neutron_public_interface} + service-password: {get_input: neutron_password} + admin-password: {get_input: admin_password} + rabbit: + host: {get_input: rabbit_host} + username: {get_input: rabbit_username} + password: {get_input: rabbit_password} + live-update: + host: {get_input: live_update_host} + username: {get_input: live_update_username} + password: {get_input: live_update_password} + tenant-name: {get_input: live_update_tenant_name} + base_image_id: {get_input: nova_image} + live_update_image_id: {get_input: live_update_compute_image} + ntp: + servers: + - {server: {get_input: ntp_server}, fudge: "stratum 0"} + +outputs: + config_id: + description: The ID of the NovaComputeConfigImpl resource. + value: + {get_resource: NovaComputeConfigImpl} diff --git a/compute.yaml b/compute.yaml index bc13509c..57b30868 100644 --- a/compute.yaml +++ b/compute.yaml @@ -245,74 +245,16 @@ resources: user_data_format: SOFTWARE_CONFIG NovaComputeConfig: - type: OS::Heat::StructuredConfig - properties: - group: os-apply-config - config: - nova: - compute_driver: { get_input: nova_compute_driver } - compute_libvirt_type: { get_input: nova_compute_libvirt_type } - db: {get_input: nova_dsn} - debug: {get_param: Debug} - host: {get_input: nova_api_host} - public_ip: {get_input: nova_public_ip} - service-password: {get_input: nova_password} - ceilometer: - db: {get_input: ceilometer_dsn} - debug: {get_param: Debug} - metering_secret: {get_input: ceilometer_metering_secret} - service-password: {get_input: ceilometer_password} - compute_agent: {get_input: ceilometer_compute_agent} - snmpd: - export_MIB: UCD-SNMP-MIB - readonly_user_name: {get_input: snmpd_readonly_user_name} - readonly_user_password: {get_input: snmpd_readonly_user_password} - glance: - debug: {get_param: Debug} - host: {get_input: glance_host} - port: {get_input: glance_port} - protocol: {get_input: glance_protocol} - keystone: - debug: {get_param: Debug} - host: {get_input: keystone_host} - neutron: - debug: {get_param: Debug} - flat-networks: {get_input: neutron_flat_networks} - host: {get_input: neutron_host} - ovs_db: {get_input: neutron_dsn} - ovs: - local_ip: {get_input: neutron_local_ip} - tenant_network_type: {get_input: neutron_tenant_network_type} - tunnel_types: {get_input: neutron_tunnel_types} - network_vlan_ranges: {get_input: neutron_network_vlan_ranges} - bridge_mappings: {get_input: neutron_bridge_mappings} - enable_tunneling: {get_input: neutron_enable_tunneling} - physical_bridge: {get_input: neutron_physical_bridge} - public_interface: {get_input: neutron_public_interface} - service-password: {get_input: neutron_password} - admin-password: {get_input: admin_password} - rabbit: - host: {get_input: rabbit_host} - username: {get_input: rabbit_username} - password: {get_input: rabbit_password} - live-update: - host: {get_input: live_update_host} - username: {get_input: live_update_username} - password: {get_input: live_update_password} - tenant-name: {get_input: live_update_tenant_name} - base_image_id: {get_input: nova_image} - live_update_image_id: {get_input: live_update_compute_image} - ntp: - servers: - - {server: {get_input: ntp_server}, fudge: "stratum 0"} + type: OS::TripleO::Compute::SoftwareConfig NovaComputeDeployment: - type: OS::Heat::StructuredDeployment + type: OS::TripleO::SoftwareDeployment properties: signal_transport: NO_SIGNAL - config: {get_resource: NovaComputeConfig} + config: {get_attr: [NovaComputeConfig, config_id]} server: {get_resource: NovaCompute} input_values: + debug: {get_param: Debug} nova_compute_driver: {get_param: NovaComputeDriver} nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType} nova_dsn: {get_param: NovaDSN} diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml index 822d9873..4ac404ee 100644 --- a/overcloud-resource-registry.yaml +++ b/overcloud-resource-registry.yaml @@ -1,5 +1,7 @@ resource_registry: OS::TripleO::BlockStorage: cinder-storage.yaml OS::TripleO::Compute: compute.yaml + OS::TripleO::Compute::SoftwareConfig: compute-config.yaml + OS::TripleO::SoftwareDeployment: OS::Heat::StructuredDeployment OS::TripleO::Controller: controller.yaml OS::TripleO::ObjectStorage: swift-storage.yaml -- cgit 1.2.3-korg