1 heat_template_version: 2014-10-16
2 description: 'Common Swift Storage Configuration'
10 Additional configuration to inject into the cluster. The JSON should have
11 the following structure:
14 [{"section": "SECTIONNAME",
16 [{"option": "OPTIONNAME",
27 [{"section": "default",
29 [{"option": "force_config_drive",
37 "value": "nova.cells.rpc_driver.CellsRPCDriver"
46 description: Flavor for Swift storage nodes to request when deploying.
49 - custom_constraint: nova.flavor
52 description: A random string to be used as a salt when hashing to determine mappings
57 default: overcloud-swift-storage
61 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
65 description: Value of mount_check in Swift account/container/object -server.conf
67 NeutronEnableTunnelling:
76 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
79 description: Partition Power to use when building Swift rings
83 description: The password for the swift service account, used by the swift proxy
90 description: How many replicas to use in the swift rings.
91 SnmpdReadonlyUserName:
93 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
95 SnmpdReadonlyUserPassword:
97 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
103 type: OS::Heat::StructuredConfig
105 group: os-apply-config
108 export_MIB: UCD-SNMP-MIB
109 readonly_user_name: {get_input: snmpd_readonly_user_name}
110 readonly_user_password: {get_input: snmpd_readonly_user_password}
112 hash: { get_input: swift_hash_suffix }
113 part-power: { get_input: swift_part_power }
114 min-part-hours: { get_input: swift_min_part_hours }
115 mount-check: { get_input: swift_mount_check }
116 replicas: {get_input: swift_replicas }
117 service-password: { get_input: swift_password }
119 enable_tunnelling: {get_param: NeutronEnableTunnelling}
120 tenant_network_type: {get_param: NeutronNetworkType}
122 local_ip: { get_input: neutron_local_ip }
124 type: OS::Nova::Server
126 image: {get_param: Image}
127 flavor: {get_param: Flavor}
128 key_name: {get_param: KeyName}
129 user_data_format: SOFTWARE_CONFIG
133 type: OS::Heat::StructuredConfig
137 host: {get_input: keystone_host}
138 SwiftStorageKeystone:
139 type: OS::Heat::StructuredDeployment
141 server: {get_resource: SwiftStorage}
142 config: {get_resource: SwiftKeystoneConfig}
143 signal_transport: NO_SIGNAL
145 keystone_host: {get_param: ControllerIP}
147 type: OS::Heat::StructuredDeployment
149 server: {get_resource: SwiftStorage}
150 config: {get_resource: SwiftConfig}
151 signal_transport: NO_SIGNAL
153 neutron_local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
154 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
155 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
156 swift_hash_suffix: {get_param: HashSuffix}
157 swift_mount_check: {get_param: MountCheck}
158 swift_password: {get_param: Password}
159 swift_min_part_hours: {get_param: MinPartHours}
160 swift_part_power: {get_param: PartPower}
161 swift_replicas: { get_param: Replicas}
167 template: "IP HOST HOST.novalocal"
169 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
170 HOST: {get_attr: [SwiftStorage, name]}
171 nova_server_resource:
172 description: Heat resource handle for the swift storage server
174 {get_resource: SwiftStorage}
176 description: Swift device formatted for swift-ring-builder
179 template: 'r1z1-IP:%PORT%/d1'
181 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}