X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=swift-storage.yaml;h=68923eef958882140b654f7e4efd5d3926dfb3b8;hb=dbc6acf03e24bcf6db0a7ed8863efc77856650c7;hp=68fd8a481e2cb2e74ffaf985e1f73adcc9928393;hpb=897c8b8aa9295b0214f35bd08ac42416078904f5;p=apex-tripleo-heat-templates.git diff --git a/swift-storage.yaml b/swift-storage.yaml index 68fd8a48..68923eef 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: | @@ -43,9 +40,10 @@ parameters: } 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 @@ -59,25 +57,21 @@ parameters: default: default description: Name of an existing EC2 KeyPair to enable SSH access to the instances type: string - NeutronEnableTunnelling: - default: "True" - type: string - NeutronNetworkType: - default: gre - type: string + MountCheck: + default: 'false' + description: Value of mount_check in Swift account/container/object -server.conf + type: boolean + 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 @@ -102,11 +96,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: @@ -115,23 +108,42 @@ 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} + + 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: @@ -143,7 +155,8 @@ resources: snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} swift_hash_suffix: {get_param: HashSuffix} - swift_password: {get_param: Password} + swift_mount_check: {get_param: MountCheck} + swift_min_part_hours: {get_param: MinPartHours} swift_part_power: {get_param: PartPower} swift_replicas: { get_param: Replicas} @@ -151,7 +164,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]} @@ -166,3 +179,12 @@ 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]}