X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=undercloud-source.yaml;h=a78e069b943fbb924715e79d3c275c7dff4a6cb2;hb=8fc307cc22da5375e9808ffa853cf1af04554078;hp=53567ba9f3dab923c8c5efb8bc5972b3c159e4d5;hpb=d6b5b1d869739aefd7357a266566d1b3d0ecf09c;p=apex-tripleo-heat-templates.git diff --git a/undercloud-source.yaml b/undercloud-source.yaml index 53567ba9..a78e069b 100644 --- a/undercloud-source.yaml +++ b/undercloud-source.yaml @@ -29,6 +29,53 @@ Parameters: Description: The password for the ceilometer service account. Type: String NoEcho: 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 + NoEcho: true + ExtraConfig: + Default: {} + 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 Flavor: Default: baremetal Description: Flavor to request when deploying. @@ -73,6 +120,18 @@ Parameters: Description: The password for the nova service account, used by nova-api. Type: String NoEcho: true + NeutronPublicInterfaceDefaultRoute: + Default: '' + Description: A custom default route for the NeutronPublicInterface. + Type: String + NeutronPublicInterfaceIP: + Default: '' + Description: A custom IP address to put onto the NeutronPublicInterface. + Type: String + NeutronPublicInterfaceRawDevice: + Default: '' + Description: If set, the public interface is a vlan with this device as the raw device. + Type: String NtpServer: Type: String Default: '' @@ -95,9 +154,25 @@ Parameters: Default: '' NoEcho: true MysqlInnodbBufferPoolSize: - Description: Specifies the size of the buffer pool in megabytes. + Description: > + Specifies the size of the buffer pool in megabytes. Setting to + zero should be interpreted as "no value" and will defer to the + lower level default. Type: Number - Default: 100 + Default: 0 + KeystoneCACertificate: + Default: '' + Description: Keystone self-signed certificate authority certificate. + Type: String + KeystoneSigningCertificate: + Default: '' + Description: Keystone certificate for verifying token validity. + Type: String + KeystoneSigningKey: + Default: '' + Description: Keystone key for signing tokens. + Type: String + NoEcho: true Resources: RabbitCookie: Type: OS::Heat::RandomString @@ -105,160 +180,108 @@ Resources: length: 20 salt: Ref: RabbitCookieSalt - AccessPolicy: - Properties: - AllowedResources: - - undercloudConfig - Type: OS::Heat::AccessPolicy - controller0Key: - Properties: - UserName: - Ref: User - Type: AWS::IAM::AccessKey - controller0CompletionCondition: - Type: AWS::CloudFormation::WaitCondition - DependsOn: undercloud - Properties: - Handle: {Ref: controller0CompletionHandle} - Count: '1' - Timeout: '1800' - controller0CompletionHandle: - Type: AWS::CloudFormation::WaitConditionHandle - User: - Properties: - Policies: - - Ref: AccessPolicy - Type: AWS::IAM::User undercloudConfig: - Type: AWS::AutoScaling::LaunchConfiguration + Type: OS::Heat::StructuredConfig Properties: - ImageId: '0' - InstanceType: foo - Metadata: - OpenStack::Role: undercloudConfig - OpenStack::Heat::Stack: {} - OpenStack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ] - admin-password: - Ref: AdminPassword - admin-token: - Ref: AdminToken - controller-address: - Fn::Select: - - 0 - - Fn::Select: - - "ctlplane" - - Fn::GetAtt: - - undercloud - - networks - ceilometer: - db: mysql://ceilometer:unset@localhost/ceilometer - metering_secret: {Ref: CeilometerMeteringSecret} - service-password: - Ref: CeilometerPassword - cinder: - db: mysql://cinder:unset@localhost/cinder - volume_size_mb: - Ref: CinderLVMLoopDeviceSize - completion-handle: - Ref: controller0CompletionHandle - db-password: unset - glance: - backend: file - db: mysql://glance:unset@localhost/glance - host: 127.0.0.1 - service-password: - Ref: GlancePassword - notifier-strategy: - Ref: GlanceNotifierStrategy - log-file: - Ref: GlanceLogFile - heat: - admin_password: - Ref: HeatPassword - admin_tenant_name: service - admin_user: heat - auth_encryption_key: unset___________ - db: mysql://heat:unset@localhost/heat - stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword} - watch_server_url: - Fn::Join: - - '' - - - http:// - - Fn::Select: - - 0 - - Fn::Select: - - "ctlplane" - - Fn::GetAtt: - - undercloud - - networks - - ":8003" - metadata_server_url: - Fn::Join: - - '' - - - http:// - - Fn::Select: - - 0 + config: + completion-signal: {get_input: deploy_signal_id} + admin-password: + Ref: AdminPassword + admin-token: + Ref: AdminToken + bootstrap_host: + bootstrap_nodeid: + Fn::Select: + - 0 + - Fn::Select: + - 0 + - Merge::Map: + undercloud: - Fn::Select: - - "ctlplane" + - name - Fn::GetAtt: - undercloud - - networks - - ":8000" - waitcondition_server_url: - Fn::Join: - - '' - - - http:// - - Fn::Select: - - 0 - - Fn::Select: - - "ctlplane" - - Fn::GetAtt: - - undercloud - - networks - - ":8000/v1/waitcondition" - os-collect-config: - cfn: - access_key_id: - Ref: controller0Key - path: undercloudConfig.Metadata - secret_access_key: + - show + nodeid: {get_input: bootstack_nodeid} + bootstack: + public_interface_ip: + Ref: NeutronPublicInterfaceIP + controller-address: + get_input: controller_host + ceilometer: + db: mysql://ceilometer:unset@localhost/ceilometer + metering_secret: {Ref: CeilometerMeteringSecret} + snmpd_readonly_user_name: + Ref: SnmpdReadonlyUserName + snmpd_readonly_user_password: + Ref: SnmpdReadonlyUserPassword + service-password: + Ref: CeilometerPassword + db-password: unset + glance: + backend: file + db: mysql://glance:unset@localhost/glance + host: 127.0.0.1 + service-password: + Ref: GlancePassword + notifier-strategy: + Ref: GlanceNotifierStrategy + log-file: + Ref: GlanceLogFile + heat: + admin_password: + Ref: HeatPassword + admin_tenant_name: service + admin_user: heat + auth_encryption_key: unset___________ + db: mysql://heat:unset@localhost/heat + stack_domain_admin_password: {Ref: 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: mysql://keystone:unset@localhost/keystone + host: 127.0.0.1 + ca_certificate: {Ref: KeystoneCACertificate} + signing_key: {Ref: KeystoneSigningKey} + signing_certificate: {Ref: KeystoneSigningCertificate} + mysql: + innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize} + neutron: + host: 127.0.0.1 + ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 + ovs: + public_interface: + Ref: NeutronPublicInterface + public_interface_raw_device: + Ref: NeutronPublicInterfaceRawDevice + public_interface_route: + Ref: NeutronPublicInterfaceDefaultRoute + physical_bridge: br-ctlplane + physical_network: ctlplane + network_vlan_ranges: ctlplane + bridge_mappings: ctlplane:br-ctlplane + tenant_network_type: vlan + enable_tunneling: 'False' + service-password: + Ref: NeutronPassword + rabbit: + host: 127.0.0.1 + username: + Ref: RabbitUserName + password: + Ref: RabbitPassword + cookie: Fn::GetAtt: - - controller0Key - - SecretAccessKey - stack_name: - Ref: AWS::StackName - keystone: - db: mysql://keystone:unset@localhost/keystone - host: 127.0.0.1 - mysql: - innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize} - neutron: - host: 127.0.0.1 - ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 - ovs: - public_interface: - Ref: NeutronPublicInterface - physical_bridge: br-ctlplane - physical_network: ctlplane - network_vlan_ranges: ctlplane - bridge_mappings: ctlplane:br-ctlplane - tenant_network_type: vlan - enable_tunneling: 'False' - service-password: - Ref: NeutronPassword - ntp: - servers: + - RabbitCookie + - value + ntp: + servers: - {server: {Ref: NtpServer}, fudge: "stratum 0"} - rabbit: - host: 127.0.0.1 - username: - Ref: RabbitUserName - password: - Ref: RabbitPassword - cookie: - Fn::GetAtt: - - RabbitCookie - - value + undercloudPassthroughConfig: + Type: OS::Heat::StructuredConfig + Properties: + config: {get_input: passthrough_config} undercloud: Type: OS::Nova::Server Properties: @@ -270,15 +293,50 @@ Resources: Ref: KeyName image_update_policy: Ref: ImageUpdatePolicy - Metadata: - os-collect-config: - cfn: - access_key_id: - Ref: controller0Key - path: undercloudConfig.Metadata - secret_access_key: - Fn::GetAtt: - - controller0Key - - SecretAccessKey - stack_name: - Ref: AWS::StackName + user_data_format: SOFTWARE_CONFIG + 99_undercloudDeployment: + Type: OS::Heat::StructuredDeployment + Properties: + config: {Ref: undercloudConfig} + server: {Ref: undercloud} + input_values: + bootstack_nodeid: + Fn::Select: + - name + - Fn::GetAtt: + - undercloud + - show + controller_host: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - Fn::GetAtt: + - undercloud + - networks + heat.watch_server_url: + Fn::Join: + - '' + - - 'http://' + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]} + - ':8003' + heat.metadata_server_url: + Fn::Join: + - '' + - - 'http://' + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]} + - ':8000' + heat.waitcondition_server_url: + Fn::Join: + - '' + - - 'http://' + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]} + - ':8000/v1/waitcondition' + 00_undercloudPassthroughDeployment: + Type: OS::Heat::StructuredDeployment + Properties: + config: {Ref: undercloudPassthroughConfig} + server: {Ref: undercloud} + signal_transport: NO_SIGNAL + input_values: + passthrough_config: {Ref: ExtraConfig}