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