Merge "Docker service for Cinder Volume"
[apex-tripleo-heat-templates.git] / docker / services / swift-ringbuilder.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Swift Ringbuilder
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerSwiftProxyImage:
12     description: image
13     default: 'centos-binary-swift-proxy-server:latest'
14     type: string
15   ServiceNetMap:
16     default: {}
17     description: Mapping of service_name -> network name. Typically set
18                  via parameter_defaults in the resource registry.  This
19                  mapping overrides those in ServiceNetMapDefaults.
20     type: json
21   DefaultPasswords:
22     default: {}
23     type: json
24   RoleName:
25     default: ''
26     description: Role name on which the service is applied
27     type: string
28   RoleParameters:
29     default: {}
30     description: Parameters specific to the role
31     type: json
32   EndpointMap:
33     default: {}
34     description: Mapping of service endpoint -> protocol. Typically set
35                  via parameter_defaults in the resource registry.
36     type: json
37   SwiftMinPartHours:
38     type: number
39     default: 1
40     description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
41   SwiftPartPower:
42     default: 10
43     description: Partition Power to use when building Swift rings
44     type: number
45   SwiftRingBuild:
46     default: true
47     description: Whether to manage Swift rings or not
48     type: boolean
49   SwiftReplicas:
50     type: number
51     default: 3
52     description: How many replicas to use in the swift rings.
53   SwiftRawDisks:
54     default: {}
55     description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})'
56     type: json
57   SwiftUseLocalDir:
58     default: true
59     description: 'Use a local directory for Swift storage services when building rings'
60     type: boolean
61   SwiftRingGetTempurl:
62     default: ''
63     description: A temporary Swift URL to download rings from.
64     type: string
65   SwiftRingPutTempurl:
66     default: ''
67     description: A temporary Swift URL to upload rings to.
68     type: string
69
70 resources:
71
72   SwiftRingbuilderBase:
73     type: ../../puppet/services/swift-ringbuilder.yaml
74     properties:
75       EndpointMap: {get_param: EndpointMap}
76       ServiceNetMap: {get_param: ServiceNetMap}
77       DefaultPasswords: {get_param: DefaultPasswords}
78       RoleName: {get_param: RoleName}
79       RoleParameters: {get_param: RoleParameters}
80
81 outputs:
82   role_data:
83     description: Role data for Swift Ringbuilder configuration in containers.
84     value:
85       service_name: {get_attr: [SwiftRingbuilderBase, role_data, service_name]}
86       config_settings:
87         map_merge:
88           - {get_attr: [SwiftRingbuilderBase, role_data, config_settings]}
89           - tripleo::profile::base::swift::ringbuilder:skip_consistency_check: true
90       step_config: &step_config
91         get_attr: [SwiftRingbuilderBase, role_data, step_config]
92       service_config_settings: {get_attr: [SwiftRingbuilderBase, role_data, service_config_settings]}
93       # BEGIN DOCKER SETTINGS
94       puppet_config:
95         config_volume: 'swift'
96         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
97         step_config: *step_config
98         config_image:
99           list_join:
100             - '/'
101             - [ {get_param: DockerNamespace}, {get_param: DockerSwiftProxyImage} ]
102       kolla_config: {}
103       docker_config: {}