1 heat_template_version: 2015-04-30
2 description: 'Common Swift Storage Configuration'
7 Additional configuration to inject into the cluster. The JSON should have
8 the following structure:
11 [{"section": "SECTIONNAME",
13 [{"option": "OPTIONNAME",
24 [{"section": "default",
26 [{"option": "force_config_drive",
34 "value": "nova.cells.rpc_driver.CellsRPCDriver"
42 ObjectStorageExtraConfig:
45 Role specific additional configuration to inject into the cluster.
48 description: Flavor for Swift storage nodes to request when deploying.
51 - custom_constraint: nova.flavor
54 description: A random string to be used as a salt when hashing to determine mappings
59 default: overcloud-swift-storage
63 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
67 description: Value of mount_check in Swift account/container/object -server.conf
72 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
75 description: Partition Power to use when building Swift rings
80 description: How many replicas to use in the swift rings.
81 SnmpdReadonlyUserName:
83 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
85 SnmpdReadonlyUserPassword:
87 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
94 Setting to a previously unused value during stack-update will trigger
95 package update on all nodes
98 default: '' # Defaults to Heat created hostname
102 type: OS::Heat::StructuredConfig
104 group: os-apply-config
107 export_MIB: UCD-SNMP-MIB
108 readonly_user_name: {get_input: snmpd_readonly_user_name}
109 readonly_user_password: {get_input: snmpd_readonly_user_password}
111 hash: { get_input: swift_hash_suffix }
112 part-power: { get_input: swift_part_power }
113 min-part-hours: { get_input: swift_min_part_hours }
114 mount-check: { get_input: swift_mount_check }
115 replicas: {get_input: swift_replicas }
118 local_ip: { get_input: neutron_local_ip }
120 type: OS::Nova::Server
122 image: {get_param: Image}
123 flavor: {get_param: Flavor}
124 key_name: {get_param: KeyName}
127 user_data_format: SOFTWARE_CONFIG
128 user_data: {get_resource: NodeUserData}
129 name: {get_param: Hostname}
132 type: OS::TripleO::NodeUserData
135 type: OS::TripleO::SwiftStorage::Ports::InternalApiPort
137 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
140 type: OS::TripleO::SwiftStorage::Ports::StoragePort
142 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
145 type: OS::TripleO::SwiftStorage::Ports::StorageMgmtPort
147 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
150 type: OS::TripleO::ObjectStorage::Net::SoftwareConfig
152 ControlPlaneIp: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
153 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
154 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
155 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
158 type: OS::TripleO::SoftwareDeployment
160 config: {get_resource: NetworkConfig}
161 server: {get_resource: SwiftStorage}
164 type: OS::Heat::StructuredDeployment
166 server: {get_resource: SwiftStorage}
167 config: {get_resource: SwiftConfig}
168 signal_transport: NO_SIGNAL
170 neutron_local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
171 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
172 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
173 swift_hash_suffix: {get_param: HashSuffix}
174 swift_mount_check: {get_param: MountCheck}
175 swift_min_part_hours: {get_param: MinPartHours}
176 swift_part_power: {get_param: PartPower}
177 swift_replicas: { get_param: Replicas}
185 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
186 HOST: {get_attr: [SwiftStorage, name]}
187 nova_server_resource:
188 description: Heat resource handle for the swift storage server
190 {get_resource: SwiftStorage}
192 description: Swift device formatted for swift-ring-builder
195 template: 'r1z1-IP:%PORT%/d1'
197 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
198 internal_api_ip_address:
199 description: IP address of the server in the internal_api network
200 value: {get_attr: [InternalApiPort, ip_address]}
202 description: IP address of the server in the storage network
203 value: {get_attr: [StoragePort, ip_address]}
204 storage_mgmt_ip_address:
205 description: IP address of the server in the storage_mgmt network
206 value: {get_attr: [StorageMgmtPort, ip_address]}
208 description: identifier which changes if the node configuration may need re-applying
209 value: "None - NO_SIGNAL"