OpenStack Swift Ringbuilder
parameters:
- DockerNamespace:
- description: namespace
- default: 'tripleoupstream'
+ DockerSwiftConfigImage:
+ description: The container image to use for the swift config_volume
type: string
- DockerSwiftProxyImage:
- description: image
- default: 'centos-binary-swift-proxy-server:latest'
+ DockerSwiftRingbuilderConfigImage:
+ description: Fake parameter to bypass config_volume yaml validation
type: string
+ default: ''
+ ServiceData:
+ default: {}
+ description: Dictionary packing service data
+ type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
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
resources:
type: ../../puppet/services/swift-ringbuilder.yaml
properties:
EndpointMap: {get_param: EndpointMap}
+ ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
RoleName: {get_param: RoleName}
description: Role data for Swift Ringbuilder configuration in containers.
value:
service_name: {get_attr: [SwiftRingbuilderBase, role_data, service_name]}
- config_settings: {get_attr: [SwiftRingbuilderBase, role_data, config_settings]}
+ config_settings:
+ map_merge:
+ - {get_attr: [SwiftRingbuilderBase, role_data, config_settings]}
+ - tripleo::profile::base::swift::ringbuilder:skip_consistency_check: true
step_config: &step_config
get_attr: [SwiftRingbuilderBase, role_data, step_config]
service_config_settings: {get_attr: [SwiftRingbuilderBase, role_data, service_config_settings]}
# BEGIN DOCKER SETTINGS
puppet_config:
- config_volume: 'swift'
- puppet_tags: exec,ring_object_device,swift::ringbuilder::create,tripleo::profile::base::swift::add_devices,swift::ringbuilder::rebalance
+ config_volume: 'swift_ringbuilder'
+ puppet_tags: exec,fetch_swift_ring_tarball,extract_swift_ring_tarball,ring_object_device,swift::ringbuilder::create,tripleo::profile::base::swift::add_devices,swift::ringbuilder::rebalance,create_swift_ring_tarball,upload_swift_ring_tarball
step_config: *step_config
- config_image:
- list_join:
- - '/'
- - [ {get_param: DockerNamespace}, {get_param: DockerSwiftProxyImage} ]
+ config_image: &swift_ringbuilder_image {get_param: DockerSwiftConfigImage}
kolla_config: {}
- docker_config: {}
+ docker_config:
+ step_3:
+ swift_copy_rings:
+ image: *swift_ringbuilder_image
+ user: root
+ detach: false
+ command:
+ # Use bash to run the cp command so that wildcards can be used
+ - '/bin/bash'
+ - '-c'
+ - 'cp -v -a -t /etc/swift /swift_ringbuilder/etc/swift/*.gz /swift_ringbuilder/etc/swift/*.builder /swift_ringbuilder/etc/swift/backups'
+ volumes:
+ - /var/lib/config-data/puppet-generated/swift/etc/swift:/etc/swift:rw
+ - /var/lib/config-data/swift_ringbuilder:/swift_ringbuilder:ro