1 heat_template_version: 2014-10-16
2 description: 'Common Swift Storage Configuration'
4 #FIXME: this should not be required.
9 description: Flavor for Swift storage nodes to request when deploying.
12 - custom_constraint: nova.flavor
15 description: A random string to be used as a salt when hashing to determine mappings
20 default: overcloud-swift-storage
24 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
28 description: Value of mount_check in Swift account/container/object -server.conf
30 #FIXME: this is is not required. Leaving here for compatability with the overcloud template.
31 NeutronEnableTunnelling:
34 #FIXME: this is is not required. Leaving here for compatability with the overcloud template.
41 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
44 description: Partition Power to use when building Swift rings
46 #FIXME: this is is not required. Leaving here for compatability with the overcloud template.
49 description: The password for the swift service account, used by the swift proxy
56 description: How many replicas to use in the swift rings.
57 SnmpdReadonlyUserName:
59 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
61 SnmpdReadonlyUserPassword:
63 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
70 type: OS::Nova::Server
72 image: {get_param: Image}
73 flavor: {get_param: Flavor}
74 key_name: {get_param: KeyName}
75 user_data_format: SOFTWARE_CONFIG
80 type: OS::Heat::SoftwareConfig
86 get_file: puppet/overcloud_object.pp
88 StoragePuppetDeployment:
89 type: OS::Heat::StructuredDeployment
92 server: {get_resource: SwiftStorage}
93 config: {get_resource: StoragePuppetConfig}
95 StorageRingbuilderPuppetConfig:
96 type: OS::Heat::SoftwareConfig
102 get_file: puppet/ringbuilder.pp
104 StorageRingbuilderPuppetDeployment:
105 type: OS::Heat::StructuredDeployment
108 server: {get_resource: SwiftStorage}
109 config: {get_resource: StorageRingbuilderPuppetConfig}
111 SwiftStorageHieraConfig:
112 type: OS::Heat::StructuredConfig
114 group: os-apply-config
118 - heat_config_%{::deploy_config_name}
123 raw_data: {get_file: puppet/hieradata/common.yaml}
125 raw_data: {get_file: puppet/hieradata/object.yaml}
126 oac_data: # data we map in from other OAC configurations
127 tripleo::ringbuilder::devices: swift.devices
128 mapped_data: # data supplied directly to this deployment configuration, etc
129 swift::swift_hash_suffix: { get_input: swift_hash_suffix }
130 tripleo::ringbuilder::part_power: { get_input: swift_part_power }
131 tripleo::ringbuilder::replicas: {get_input: swift_replicas }
133 swift::storage::all::storage_local_net_ip: {get_input: local_ip}
134 swift_mount_check: {get_input: swift_mount_check }
135 tripleo::ringbuilder::min_part_hours: { get_input: swift_min_part_hours }
136 # NOTE(dprince): build_ring support is currently not wired in.
137 # See: https://review.openstack.org/#/c/109225/
138 tripleo::ringbuilder::build_ring: True
141 SwiftStorageHieraDeploy:
142 type: OS::Heat::StructuredDeployment
144 server: {get_resource: SwiftStorage}
145 config: {get_resource: SwiftStorageHieraConfig}
146 signal_transport: NO_SIGNAL
148 local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
149 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
150 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
151 swift_hash_suffix: {get_param: HashSuffix}
152 swift_mount_check: {get_param: MountCheck}
153 swift_min_part_hours: {get_param: MinPartHours}
154 swift_part_power: {get_param: PartPower}
155 swift_replicas: { get_param: Replicas}
161 template: "IP HOST HOST.novalocal"
163 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
164 HOST: {get_attr: [SwiftStorage, name]}
165 nova_server_resource:
166 description: Heat resource handle for the swift storage server
168 {get_resource: SwiftStorage}
170 description: Swift device formatted for swift-ring-builder
173 template: 'r1z1-IP:%PORT%/d1'
175 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}