1 heat_template_version: 2014-10-16
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"
43 description: Flavor for Swift storage nodes to request when deploying.
46 - custom_constraint: nova.flavor
49 description: A random string to be used as a salt when hashing to determine mappings
54 default: overcloud-swift-storage
58 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
62 description: Value of mount_check in Swift account/container/object -server.conf
67 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
70 description: Partition Power to use when building Swift rings
75 description: How many replicas to use in the swift rings.
76 SnmpdReadonlyUserName:
78 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
80 SnmpdReadonlyUserPassword:
82 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
88 type: OS::Heat::StructuredConfig
90 group: os-apply-config
93 export_MIB: UCD-SNMP-MIB
94 readonly_user_name: {get_input: snmpd_readonly_user_name}
95 readonly_user_password: {get_input: snmpd_readonly_user_password}
97 hash: { get_input: swift_hash_suffix }
98 part-power: { get_input: swift_part_power }
99 min-part-hours: { get_input: swift_min_part_hours }
100 mount-check: { get_input: swift_mount_check }
101 replicas: {get_input: swift_replicas }
104 local_ip: { get_input: neutron_local_ip }
106 type: OS::Nova::Server
108 image: {get_param: Image}
109 flavor: {get_param: Flavor}
110 key_name: {get_param: KeyName}
111 user_data_format: SOFTWARE_CONFIG
115 type: OS::Heat::StructuredDeployment
117 server: {get_resource: SwiftStorage}
118 config: {get_resource: SwiftConfig}
119 signal_transport: NO_SIGNAL
121 neutron_local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
122 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
123 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
124 swift_hash_suffix: {get_param: HashSuffix}
125 swift_mount_check: {get_param: MountCheck}
126 swift_min_part_hours: {get_param: MinPartHours}
127 swift_part_power: {get_param: PartPower}
128 swift_replicas: { get_param: Replicas}
134 template: "IP HOST HOST.novalocal"
136 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
137 HOST: {get_attr: [SwiftStorage, name]}
138 nova_server_resource:
139 description: Heat resource handle for the swift storage server
141 {get_resource: SwiftStorage}
143 description: Swift device formatted for swift-ring-builder
146 template: 'r1z1-IP:%PORT%/d1'
148 IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}