X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=nova-compute-instance.yaml;h=00658ff259b2eb3a68c4001b26dec279545ab6bc;hb=bf62abdc07ec9255122ff1a9155cf9fb809cda09;hp=91c9ce695ad9785f56861a76c4442cc0a5662397;hpb=a073f1c3eb0842563321c903cd630abd7b81bb41;p=apex-tripleo-heat-templates.git diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml index 91c9ce69..00658ff2 100644 --- a/nova-compute-instance.yaml +++ b/nova-compute-instance.yaml @@ -1,107 +1,252 @@ -HeatTemplateFormatVersion: '2012-12-12' -Description: 'Nova Compute' -Parameters: - KeyName: - Description: Name of an existing EC2 KeyPair to enable SSH access to the instances - Type: String - Default: default - InstanceType: - Description: Use this flavor - Type: String - Default: baremetal +heat_template_version: 2013-05-23 +description: 'Nova Compute' +parameters: + AdminPassword: + default: unset + description: The password for the keystone admin account, used for monitoring, querying neutron etc. + type: string + hidden: true + ExtraConfig: + description: | + Additional configuration to inject into the cluster. The JSON should have + the following structure: + {"FILEKEY": + {"config": + [{"section": "SECTIONNAME", + "values": + [{"option": "OPTIONNAME", + "value": "VALUENAME" + } + ] + } + ] + } + } + For instance: + {"nova": + {"config": + [{"section": "default", + "values": + [{"option": "compute_manager", + "value": "ironic.nova.compute.manager.ClusterComputeManager" + } + ] + }, + {"section": "cells", + "values": + [{"option": "driver", + "value": "nova.cells.rpc_driver.CellsRPCDriver" + } + ] + } + ] + } + } + type: json + KeyName: + description: Name of an existing EC2 KeyPair to enable SSH access to the instances + type: string + default: default + OvercloudComputeFlavor: + description: Use this flavor + type: string + default: baremetal + ImageUpdatePolicy: + default: 'REBUILD_PRESERVE_EPHEMERAL' + description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt. + type: string NovaImage: - Type: String + type: string + default: overcloud-compute + NtpServer: + type: string + default: '' KeystoneHost: - Type: String - ServicePassword: - Description: admin_password for setting up auth in nova. - Type: String - QuantumHost: - Type: String + type: string + NeutronFlatNetworks: + type: string + default: '' + description: If set, flat networks to configure in neutron plugins. + NeutronHost: + type: string + NeutronPhysicalBridge: + default: '' + description: An OVS bridge to create for accessing external networks. + type: string + NeutronPublicInterface: + default: '' + description: A port to add to the NeutronPhysicalBridge. + type: string RabbitHost: - Type: String + type: string + RabbitUserName: + type: string RabbitPassword: - Type: String - NovaInterfaces: - Type: String - Default: eth0 + type: string + hidden: true + CeilometerComputeAgent: + description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly + type: string + default: '' + constraints: + - allowed_values: ['', Present] + CeilometerMeteringSecret: + default: unset + description: Secret shared by the ceilometer services. + type: string + hidden: true + CeilometerPassword: + default: unset + description: The password for the ceilometer service account. + type: string + hidden: true + SnmpdReadonlyUserName: + default: ro_snmp_user + description: The user name for SNMPd with readonly rights running on all Overcloud nodes + type: string + SnmpdReadonlyUserPassword: + default: unset + description: The user password for SNMPd with readonly rights running on all Overcloud nodes + type: string + hidden: true NovaComputeDriver: - Type: String - Default: libvirt.LibvirtDriver + type: string + default: libvirt.LibvirtDriver + NovaComputeLibvirtType: + type: string + default: '' NovaApiHost: - Type: String + type: string + NovaPassword: + default: unset + description: The password for the nova service account, used by nova-api. + type: string + hidden: true GlanceHost: - Type: String + type: string + GlancePort: + default: 9292 + description: Glance port. + type: string + GlanceProtocol: + default: http + description: Protocol to use when connecting to glance, set to https for SSL. + type: string + CeilometerDSN: + type: string NovaDSN: - Type: String - QuantumDSN: - Type: String - QuantumBridgeMappings: - Type: String - QuantumNetworkVLANRanges: - Type: String - QuantumNetworkType: - Type: String - QuantumEnableTunnelling: - Type: String -Resources: - AccessPolicy: - Type: OS::Heat::AccessPolicy - Properties: - AllowedResources: [ NovaCompute ] - User: - Type: AWS::IAM::User - Properties: - Policies: [ { Ref: AccessPolicy } ] - Key: - Type: AWS::IAM::AccessKey - Properties: - UserName: - Ref: User - NovaCompute: - Type: AWS::EC2::Instance - Properties: - ImageId: - {Ref: NovaImage} - InstanceType: {Ref: InstanceType} - KeyName: {Ref: KeyName} - Metadata: - OpenStack::ImageBuilder::Elements: [ nova-compute ] - heat: - access_key_id: - Ref: Key - secret_key: - Fn::GetAtt: [ Key, SecretAccessKey ] - stack: - name: {Ref: 'AWS::StackName'} - region: {Ref: 'AWS::Region'} - refresh: - - resource: NovaCompute - nova: - compute_driver: {Ref: NovaComputeDriver} - db: {Ref: NovaDSN} - host: {Ref: NovaApiHost} - glance: - host: {Ref: GlanceHost} - keystone: - host: {Ref: KeystoneHost} - quantum: - host: {Ref: QuantumHost} - ovs_db: {Ref: QuantumDSN} - ovs: - local_ip: 127.0.0.1 - tenant_network_type: {Ref: QuantumNetworkType} - network_vlan_ranges: {Ref: QuantumNetworkVLANRanges} - bridge_mappings: {Ref: QuantumBridgeMappings} - enable_tunneling: {Ref: QuantumEnableTunnelling} - - service-password: {Ref: ServicePassword} - admin-password: {Ref: ServicePassword} - rabbit: - host: {Ref: RabbitHost} - password: {Ref: RabbitPassword} - swift: - store_user: '' - store_key: '' - interfaces: - control: {Ref: NovaInterfaces} + type: string + NeutronDSN: + type: string + NeutronBridgeMappings: + type: string + NeutronNetworkVLANRanges: + type: string + NeutronNetworkType: + type: string + NeutronEnableTunnelling: + type: string + AllNodesConfig: + type: string + description: OS::Heat::Config to use for all nodes deployment + LiveUpdateUserName: + type: string + description: The live-update username for the undercloud Glance API. + default: '' + LiveUpdateTenantName: + type: string + description: The live-update tenant name for the undercloud Glance API. + default: '' + LiveUpdateHost: + type: string + description: The IP address for the undercloud Glance API. + default: '' + LiveUpdatePassword: + type: string + default: '' + description: The live-update password for the undercloud Glance API. + hidden: true + LiveUpdateComputeImage: + type: string + description: The image ID for live-updates to the overcloud compute nodes. + default: '' + DefaultSignalTransport: + default: CFN_SIGNAL + description: Transport to use for software-config signals. + type: string + constraints: + - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ] +resources: + NovaCompute0: + type: OS::Nova::Server + properties: + image: + {get_param: NovaImage} + image_update_policy: + get_param: ImageUpdatePolicy + flavor: {get_param: OvercloudComputeFlavor} + key_name: {get_param: KeyName} + networks: + - network: ctlplane + user_data_format: SOFTWARE_CONFIG + NovaCompute0Deployment: + depends_on: [controller0AllNodesDeployment] + type: OS::Heat::StructuredDeployment + properties: + signal_transport: NO_SIGNAL + config: {get_resource: NovaComputeConfig} + server: {get_resource: NovaCompute0} + input_values: + nova_compute_driver: {get_param: NovaComputeDriver} + nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType} + nova_dsn: {get_param: NovaDSN} + nova_api_host: {get_param: NovaApiHost} + nova_password: {get_param: NovaPassword} + ceilometer_dsn: {get_param: CeilometerDSN} + ceilometer_metering_secret: {get_param: CeilometerMeteringSecret} + ceilometer_password: {get_param: CeilometerPassword} + ceilometer_compute_agent: {get_param: CeilometerComputeAgent} + snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} + snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} + glance_host: {get_param: GlanceHost} + glance_port: {get_param: GlancePort} + glance_protocol: {get_param: GlanceProtocol} + keystone_host: {get_param: KeystoneHost} + neutron_flat_networks: {get_param: NeutronFlatNetworks} + neutron_host: {get_param: NeutronHost} + neutron_dsn: {get_param: NeutronDSN} + neutron_local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]} + neutron_tenant_network_type: {get_param: NeutronNetworkType} + neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} + neutron_bridge_mappings: {get_param: NeutronBridgeMappings} + neutron_enable_tunneling: {get_param: NeutronEnableTunnelling} + neutron_physical_bridge: {get_param: NeutronPhysicalBridge} + neutron_public_interface: {get_param: NeutronPublicInterface} + neutron_password: {get_param: NeutronPassword} + admin_password: {get_param: AdminPassword} + rabbit_host: {get_param: RabbitHost} + rabbit_username: {get_param: RabbitUserName} + rabbit_password: {get_param: RabbitPassword} + live_update_host: {get_param: LiveUpdateHost} + live_update_username: {get_param: LiveUpdateUserName} + live_update_password: {get_param: LiveUpdatePassword} + live_update_tenant_name: {get_param: LiveUpdateTenantName} + nova_image: {get_param: NovaImage} + live_update_image_id: {get_param: LiveUpdateComputeImage} + ntp_server: {get_param: NtpServer} + NovaCompute0AllNodesDeployment: + depends_on: [NovaCompute0Passthrough] + type: OS::Heat::StructuredDeployment + properties: + signal_transport: {get_param: DefaultSignalTransport} + config: {get_param: AllNodesConfig} + server: {get_resource: NovaCompute0} + NovaCompute0Passthrough: + depends_on: [NovaCompute0Deployment] + type: OS::Heat::StructuredDeployment + properties: + config: {get_resource: NovaComputePassthrough} + server: {get_resource: NovaCompute0} + signal_transport: NO_SIGNAL + input_values: + passthrough_config: {get_param: ExtraConfig}