{"config":
[{"section": "default",
"values":
- [{"option": "compute_manager",
- "value": "ironic.nova.compute.manager.ClusterComputeManager"
+ [{"option": "force_config_drive",
+ "value": "always"
}
]
},
}
}
type: json
+ controllerExtraConfig:
+ default: {}
+ description: |
+ Controller specific configuration to inject into the cluster. Same
+ structure as ExtraConfig.
+ type: json
+ NovaComputeExtraConfig:
+ default: {}
+ description: |
+ NovaCompute specific configuration to inject into the cluster. Same
+ structure as ExtraConfig.
+ type: json
OvercloudControlFlavor:
default: baremetal
description: Flavor for control nodes to request when deploying.
SubKey: resources.NovaCompute0AllNodesDeployment
parameters:
AllNodesConfig: {get_resource: allNodesConfig}
+ NovaCompute0:
+ type: FileInclude
+ Path: nova-compute-instance.yaml
+ SubKey: resources.NovaCompute0
NovaCompute0Passthrough:
type: FileInclude
Path: nova-compute-instance.yaml
SubKey: resources.NovaCompute0Passthrough
parameters:
passthrough_config: {get_param: ExtraConfig}
- NovaCompute0:
+ NovaCompute0PassthroughSpecific:
type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: resources.NovaCompute0
+ SubKey: resources.NovaCompute0PassthroughSpecific
+ parameters:
+ passthrough_config_specific: {get_param: NovaComputeExtraConfig}
controllerConfig:
type: OS::Heat::StructuredConfig
properties:
- 0
- Merge::Map:
controller0:
- - Fn::Select:
+ - get_attr:
+ - controller0
- name
- - get_attr:
- - controller0
- - show
nodeid: {get_input: bootstack_nodeid}
database:
host: &database_host
nodes:
Merge::Map:
controller0:
- {get_attr: [controller0, show, name]}
+ {get_attr: [controller0, name]}
keystone:
db:
Fn::Join:
Merge::Map:
controller0:
ip: {get_attr: [controller0, networks, ctlplane, 0]}
- name: {get_attr: [controller0, show, name]}
+ name: {get_attr: [controller0, name]}
net_binds:
- ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
services:
properties:
group: os-apply-config
config: {get_input: passthrough_config}
+ controllerPassthroughSpecific:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config: {get_input: passthrough_config_specific}
controller0:
type: OS::Nova::Server
properties:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
controller0AllNodesDeployment:
- depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
+ depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific]
type: OS::Heat::StructuredDeployment
properties:
signal_transport: {get_param: DefaultSignalTransport}
config: {get_resource: controllerConfig}
server: {get_resource: controller0}
input_values:
- bootstack_nodeid: {get_attr: [controller0, show, name]}
+ bootstack_nodeid: {get_attr: [controller0, name]}
controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
controller_virtual_ip:
{get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
Fn::Join:
- ' '
- - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
- - {get_attr: [NovaCompute0, show, name]}
+ - {get_attr: [NovaCompute0, name]}
- Fn::Join:
- '.'
- - - {get_attr: [NovaCompute0, show, name]}
+ - - {get_attr: [NovaCompute0, name]}
- 'novalocal'
- Fn::Join:
- "\n"
Fn::Join:
- ' '
- - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
- - {get_attr: [BlockStorage0, show, name]}
+ - {get_attr: [BlockStorage0, name]}
- Fn::Join:
- '.'
- - - {get_attr: [BlockStorage0, show, name]}
+ - - {get_attr: [BlockStorage0, name]}
- 'novalocal'
- Fn::Join:
- "\n"
Fn::Join:
- ' '
- - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
- - {get_attr: [SwiftStorage0, show, name]}
+ - {get_attr: [SwiftStorage0, name]}
- Fn::Join:
- '.'
- - - {get_attr: [SwiftStorage0, show, name]}
+ - - {get_attr: [SwiftStorage0, name]}
- 'novalocal'
- Fn::Join:
- "\n"
Fn::Join:
- ' '
- - {get_attr: [controller0, networks, ctlplane, 0]}
- - {get_attr: [controller0, show, name]}
+ - {get_attr: [controller0, name]}
- Fn::Join:
- '.'
- - - {get_attr: [controller0, show, name]}
+ - - {get_attr: [controller0, name]}
- 'novalocal'
- {get_param: CloudName}
rabbit:
- ','
- Merge::Map:
controller0:
- {get_attr: [controller0, show, name]}
+ {get_attr: [controller0, name]}
controller0SSLDeployment:
type: OS::Heat::StructuredDeployment
properties:
signal_transport: NO_SIGNAL
input_values:
passthrough_config: {get_param: ExtraConfig}
+ controller0PassthroughSpecific:
+ depends_on: [controller0Passthrough]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: controllerPassthroughSpecific}
+ server: {get_resource: controller0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config_specific: {get_param: controllerExtraConfig}
outputs:
KeystoneURL:
description: URL for the Overcloud Keystone service