X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=swift-storage.yaml;h=1a2967faa0752cba70c5afe7ef7a784b617d9439;hb=e39fccd99e5e6c8e5f80b05d53e0933893155f65;hp=2b40e80029997ed998d92fd5aadebeb107643209;hpb=bacde7fdb6ea6b41be7d9802796d3b8b52538529;p=apex-tripleo-heat-templates.git diff --git a/swift-storage.yaml b/swift-storage.yaml index 2b40e800..1a2967fa 100644 --- a/swift-storage.yaml +++ b/swift-storage.yaml @@ -1,9 +1,6 @@ -heat_template_version: 2014-10-16 +heat_template_version: 2015-04-30 description: 'Common Swift Storage Configuration' parameters: - ControllerIP: - default: '' - type: string ExtraConfig: default: {} description: | @@ -42,10 +39,16 @@ parameters: } } type: json + ObjectStorageExtraConfig: + default: {} + description: | + Role specific additional configuration to inject into the cluster. + type: json Flavor: - default: baremetal description: Flavor for Swift storage nodes to request when deploying. type: string + constraints: + - custom_constraint: nova.flavor HashSuffix: default: unset description: A random string to be used as a salt when hashing to determine mappings @@ -63,25 +66,17 @@ parameters: default: 'false' description: Value of mount_check in Swift account/container/object -server.conf type: boolean - NeutronEnableTunnelling: - default: "True" - type: string - NeutronNetworkType: - default: gre - type: string + MinPartHours: + type: number + default: 1 + description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance. PartPower: default: 10 description: Partition Power to use when building Swift rings type: number - Password: - default: unset - description: The password for the swift service account, used by the swift proxy - services. - hidden: true - type: string Replicas: type: number - default: 1 + default: 3 description: How many replicas to use in the swift rings. SnmpdReadonlyUserName: default: ro_snmp_user @@ -92,6 +87,15 @@ parameters: 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 resources: SwiftConfig: @@ -106,11 +110,10 @@ resources: swift: hash: { get_input: swift_hash_suffix } part-power: { get_input: swift_part_power } + min-part-hours: { get_input: swift_min_part_hours } + mount-check: { get_input: swift_mount_check } replicas: {get_input: swift_replicas } - service-password: { get_input: swift_password } neutron: - enable_tunnelling: {get_param: NeutronEnableTunnelling} - tenant_network_type: {get_param: NeutronNetworkType} ovs: local_ip: { get_input: neutron_local_ip } SwiftStorage: @@ -119,23 +122,43 @@ resources: image: {get_param: Image} flavor: {get_param: Flavor} key_name: {get_param: KeyName} - user_data_format: SOFTWARE_CONFIG networks: - network: ctlplane - SwiftKeystoneConfig: - type: OS::Heat::StructuredConfig + user_data_format: SOFTWARE_CONFIG + user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} + + NodeUserData: + type: OS::TripleO::NodeUserData + + InternalApiPort: + type: OS::TripleO::SwiftStorage::Ports::InternalApiPort properties: - config: - keystone: - host: {get_input: keystone_host} - SwiftStorageKeystone: - type: OS::Heat::StructuredDeployment + ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + + StoragePort: + type: OS::TripleO::SwiftStorage::Ports::StoragePort + properties: + ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + + StorageMgmtPort: + type: OS::TripleO::SwiftStorage::Ports::StorageMgmtPort + properties: + ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + + NetworkConfig: + type: OS::TripleO::ObjectStorage::Net::SoftwareConfig + properties: + 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: SwiftStorage} - config: {get_resource: SwiftKeystoneConfig} - signal_transport: NO_SIGNAL - input_values: - keystone_host: {get_param: ControllerIP} + SwiftStorageDeploy: type: OS::Heat::StructuredDeployment properties: @@ -148,7 +171,7 @@ resources: snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} swift_hash_suffix: {get_param: HashSuffix} swift_mount_check: {get_param: MountCheck} - swift_password: {get_param: Password} + swift_min_part_hours: {get_param: MinPartHours} swift_part_power: {get_param: PartPower} swift_replicas: { get_param: Replicas} @@ -156,7 +179,7 @@ outputs: hosts_entry: value: str_replace: - template: "IP HOST HOST.novalocal" + template: "IP HOST" params: IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} HOST: {get_attr: [SwiftStorage, name]} @@ -171,3 +194,15 @@ outputs: template: 'r1z1-IP:%PORT%/d1' params: IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + 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"