bccb698984
This patch updates all network configuration templates so that we configure the ctlplane network interface with a static IP instead of using DHCP. The IP address used for the static IP is passed into each nested stack network configuration template via the ControlPlaneIp parameter. Three new nested stack parameters called ControlPlaneSubnetCidr, ControlPlaneDefaultRoute, and EC2MetadataIp have been added to help configure the CIDR, default route, and EC2 metadata route on the ctlplane statically. These parameters can be customized via the parameter_defaults section in the heat environment. A single new template called net-config-static-bridge.yaml has been added to help migrate towards using the static configuration templates when not using network isolation. Depends-On: I257e1cba6dee16f73f75512d1284e1e3b9d4c831 Change-Id: Ib267e6dcf2d5ff77f7a82ee20a123965c2d07565
234 lines
7.1 KiB
YAML
234 lines
7.1 KiB
YAML
heat_template_version: 2015-04-30
|
|
description: 'Common Block Storage Configuration'
|
|
parameters:
|
|
Image:
|
|
default: overcloud-cinder-volume
|
|
type: string
|
|
CinderEnableIscsiBackend:
|
|
default: true
|
|
description: Whether to enable or not the Iscsi backend for Cinder
|
|
type: boolean
|
|
CinderISCSIHelper:
|
|
default: tgtadm
|
|
description: The iSCSI helper to use with cinder.
|
|
type: string
|
|
CinderLVMLoopDeviceSize:
|
|
default: 5000
|
|
description: The size of the loopback file used by the cinder LVM driver.
|
|
type: number
|
|
CinderPassword:
|
|
default: unset
|
|
description: The password for the cinder service and db account, used by cinder-api.
|
|
type: string
|
|
hidden: true
|
|
VirtualIP:
|
|
default: ''
|
|
type: string
|
|
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": "force_config_drive",
|
|
"value": "always"
|
|
}
|
|
]
|
|
},
|
|
{"section": "cells",
|
|
"values":
|
|
[{"option": "driver",
|
|
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
type: json
|
|
BlockStorageExtraConfig:
|
|
default: {}
|
|
description: |
|
|
Role specific additional configuration to inject into the cluster.
|
|
type: json
|
|
Flavor:
|
|
description: Flavor for block storage nodes to request when deploying.
|
|
type: string
|
|
constraints:
|
|
- custom_constraint: nova.flavor
|
|
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
|
|
KeyName:
|
|
default: default
|
|
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
|
type: string
|
|
RabbitPassword:
|
|
default: 'guest'
|
|
type: string
|
|
RabbitUserName:
|
|
default: 'guest'
|
|
type: string
|
|
RabbitClientUseSSL:
|
|
default: false
|
|
description: >
|
|
Rabbit client subscriber parameter to specify
|
|
an SSL connection to the RabbitMQ host.
|
|
type: string
|
|
RabbitClientPort:
|
|
default: 5672
|
|
description: Set rabbit subscriber port, change this if using SSL
|
|
type: number
|
|
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
|
|
UpdateIdentifier:
|
|
default: ''
|
|
type: string
|
|
description: >
|
|
Setting to a previously unused value during stack-update will trigger
|
|
package update on all nodes
|
|
Hostname:
|
|
type: string
|
|
default: '' # Defaults to Heat created hostname
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
GlanceApiVirtualIP:
|
|
type: string
|
|
default: ''
|
|
MysqlVirtualIP:
|
|
type: string
|
|
default: ''
|
|
|
|
resources:
|
|
BlockStorage:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image:
|
|
{get_param: Image}
|
|
flavor: {get_param: Flavor}
|
|
key_name: {get_param: KeyName}
|
|
networks:
|
|
- network: ctlplane
|
|
user_data_format: SOFTWARE_CONFIG
|
|
user_data: {get_resource: NodeUserData}
|
|
name: {get_param: Hostname}
|
|
|
|
NodeUserData:
|
|
type: OS::TripleO::NodeUserData
|
|
|
|
InternalApiPort:
|
|
type: OS::TripleO::BlockStorage::Ports::InternalApiPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
|
|
|
StoragePort:
|
|
type: OS::TripleO::BlockStorage::Ports::StoragePort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
|
|
|
StorageMgmtPort:
|
|
type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
|
|
|
NetworkConfig:
|
|
type: OS::TripleO::BlockStorage::Net::SoftwareConfig
|
|
properties:
|
|
ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
|
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
|
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
|
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
|
|
|
NetworkDeployment:
|
|
type: OS::TripleO::SoftwareDeployment
|
|
properties:
|
|
config: {get_resource: NetworkConfig}
|
|
server: {get_resource: BlockStorage}
|
|
|
|
BlockStorageDeployment:
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
server: {get_resource: BlockStorage}
|
|
config: {get_resource: BlockStorageConfig}
|
|
input_values:
|
|
controller_virtual_ip: {get_param: VirtualIP}
|
|
cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: VirtualIP} , '/cinder']]}
|
|
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
|
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
|
signal_transport: NO_SIGNAL
|
|
BlockStorageConfig:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: os-apply-config
|
|
config:
|
|
keystone:
|
|
host: {get_input: controller_virtual_ip}
|
|
cinder:
|
|
db: {get_input: cinder_dsn}
|
|
volume_size_mb:
|
|
get_param: CinderLVMLoopDeviceSize
|
|
iscsi-helper:
|
|
get_param: CinderISCSIHelper
|
|
snmpd:
|
|
export_MIB: UCD-SNMP-MIB
|
|
readonly_user_name: {get_input: snmpd_readonly_user_name}
|
|
readonly_user_password: {get_input: snmpd_readonly_user_password}
|
|
rabbit:
|
|
host: {get_input: controller_virtual_ip}
|
|
username: {get_param: RabbitUserName}
|
|
password: {get_param: RabbitPassword}
|
|
glance:
|
|
host: {get_input: controller_virtual_ip}
|
|
port: {get_param: GlancePort}
|
|
outputs:
|
|
hosts_entry:
|
|
value:
|
|
str_replace:
|
|
template: "IP HOST"
|
|
params:
|
|
IP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
|
HOST: {get_attr: [BlockStorage, name]}
|
|
internal_api_ip_address:
|
|
description: IP address of the server in the internal_api network
|
|
value: {get_attr: [InternalApiPort, ip_address]}
|
|
storage_ip_address:
|
|
description: IP address of the server in the storage network
|
|
value: {get_attr: [StoragePort, ip_address]}
|
|
storage_mgmt_ip_address:
|
|
description: IP address of the server in the storage_mgmt network
|
|
value: {get_attr: [StorageMgmtPort, ip_address]}
|
|
config_identifier:
|
|
description: identifier which changes if the node configuration may need re-applying
|
|
value: "None - NO_SIGNAL"
|