heat_template_version: pike description: > OpenStack Swift Ringbuilder parameters: ServiceData: default: {} description: Dictionary packing service data type: json ServiceNetMap: default: {} description: Mapping of service_name -> network name. Typically set via parameter_defaults in the resource registry. This mapping overrides those in ServiceNetMapDefaults. type: json DefaultPasswords: default: {} type: json RoleName: default: '' description: Role name on which the service is applied type: string RoleParameters: default: {} description: Parameters specific to the role type: json EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json SwiftMinPartHours: type: number default: 1 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance. SwiftPartPower: default: 10 description: Partition Power to use when building Swift rings type: number SwiftRingBuild: default: true description: Whether to manage Swift rings or not type: boolean SwiftReplicas: type: number default: 3 description: How many replicas to use in the swift rings. SwiftRawDisks: default: {} description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})' type: json SwiftUseLocalDir: default: true description: 'Use a local directory for Swift storage services when building rings' type: boolean SwiftRingGetTempurl: default: '' description: A temporary Swift URL to download rings from. type: string SwiftRingPutTempurl: default: '' description: A temporary Swift URL to upload rings to. type: string conditions: swift_use_local_dir: and: - equals: - get_param: SwiftUseLocalDir - true - equals: - get_param: SwiftRawDisks - {} outputs: role_data: description: Role data for Swift Ringbuilder configuration. value: service_name: swift_ringbuilder config_settings: tripleo::profile::base::swift::ringbuilder::swift_ring_get_tempurl: {get_param: SwiftRingGetTempurl} tripleo::profile::base::swift::ringbuilder::swift_ring_put_tempurl: {get_param: SwiftRingPutTempurl} tripleo::profile::base::swift::ringbuilder::build_ring: {get_param: SwiftRingBuild} tripleo::profile::base::swift::ringbuilder::replicas: {get_param: SwiftReplicas} tripleo::profile::base::swift::ringbuilder::part_power: {get_param: SwiftPartPower} tripleo::profile::base::swift::ringbuilder::min_part_hours: {get_param: SwiftMinPartHours} tripleo::profile::base::swift::ringbuilder::raw_disk_prefix: 'r1z1-' tripleo::profile::base::swift::ringbuilder::raw_disks: yaql: expression: $.data.raw_disk_lists.flatten() data: raw_disk_lists: - {if: [swift_use_local_dir, [':%PORT%/d1'], []]} - repeat: template: ':%PORT%/DEVICE' for_each: DEVICE: {get_param: SwiftRawDisks} step_config: | include ::tripleo::profile::base::swift::ringbuilder