Merge "Composable service support for Cinder Dell EMC Storage Center"
[apex-tripleo-heat-templates.git] / puppet / services / glance-api.yaml
1 heat_template_version: ocata
2
3 description: >
4   OpenStack Glance API service configured with Puppet
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   EndpointMap:
17     default: {}
18     description: Mapping of service endpoint -> protocol. Typically set
19                  via parameter_defaults in the resource registry.
20     type: json
21   Debug:
22     default: ''
23     description: Set to True to enable debugging on all services.
24     type: string
25   GlancePassword:
26     description: The password for the glance service and db account, used by the glance services.
27     type: string
28     hidden: true
29   GlanceWorkers:
30     default: ''
31     description: |
32       Number of API worker processes for Glance. If left unset (empty string), the
33       default value will result in the configuration being left unset and a
34       system-dependent default value will be chosen (e.g.: number of
35       processors). Please note that this will create a large number of
36       processes on systems with a large number of CPUs resulting in excess
37       memory consumption. It is recommended that a suitable non-default value
38       be selected on such systems.
39     type: string
40   MonitoringSubscriptionGlanceApi:
41     default: 'overcloud-glance-api'
42     type: string
43   GlanceApiLoggingSource:
44     type: json
45     default:
46       tag: openstack.glance.api
47       path: /var/log/glance/api.log
48   EnableInternalTLS:
49     type: boolean
50     default: false
51
52 conditions:
53   use_tls_proxy: {equals : [{get_param: EnableInternalTLS}, true]}
54
55 resources:
56
57   TLSProxyBase:
58     type: OS::TripleO::Services::TLSProxyBase
59     properties:
60       ServiceNetMap: {get_param: ServiceNetMap}
61       DefaultPasswords: {get_param: DefaultPasswords}
62       EndpointMap: {get_param: EndpointMap}
63       EnableInternalTLS: {get_param: EnableInternalTLS}
64
65   GlanceBase:
66     type: ./glance-base.yaml
67     properties:
68       ServiceNetMap: {get_param: ServiceNetMap}
69       DefaultPasswords: {get_param: DefaultPasswords}
70       EndpointMap: {get_param: EndpointMap}
71
72 outputs:
73   role_data:
74     description: Role data for the Glance API role.
75     value:
76       service_name: glance_api
77       monitoring_subscription: {get_param: MonitoringSubscriptionGlanceApi}
78       logging_source: {get_param: GlanceApiLoggingSource}
79       logging_groups:
80         - glance
81       config_settings:
82         map_merge:
83           - get_attr: [GlanceBase, role_data, config_settings]
84           - get_attr: [TLSProxyBase, role_data, config_settings]
85           - glance::api::database_connection:
86               list_join:
87                 - ''
88                 - - {get_param: [EndpointMap, MysqlInternal, protocol]}
89                   - '://glance:'
90                   - {get_param: GlancePassword}
91                   - '@'
92                   - {get_param: [EndpointMap, MysqlInternal, host]}
93                   - '/glance'
94                   - '?bind_address='
95                   - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
96             glance::api::bind_port: {get_param: [EndpointMap, GlanceInternal, port]}
97             glance::api::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
98             glance::api::authtoken::auth_url: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
99             glance::api::enable_v1_api: false
100             glance::api::enable_v2_api: true
101             glance::api::authtoken::password: {get_param: GlancePassword}
102             glance::api::enable_proxy_headers_parsing: true
103             glance::api::debug: {get_param: Debug}
104             glance::api::workers: {get_param: GlanceWorkers}
105             tripleo.glance_api.firewall_rules:
106               '112 glance_api':
107                 dport:
108                   - 9292
109                   - 13292
110             glance::api::authtoken::project_name: 'service'
111             glance::api::pipeline: 'keystone'
112             glance::api::show_image_direct_url: true
113             # NOTE: bind IP is found in Heat replacing the network name with the
114             # local node IP for the given network; replacement examples
115             # (eg. for internal_api):
116             # internal_api -> IP
117             # internal_api_uri -> [IP]
118             # internal_api_subnet - > IP/CIDR
119             tripleo::profile::base::glance::api::tls_proxy_bind_ip:
120               get_param: [ServiceNetMap, GlanceApiNetwork]
121             tripleo::profile::base::glance::api::tls_proxy_fqdn:
122               str_replace:
123                 template:
124                   "%{hiera('fqdn_$NETWORK')}"
125                 params:
126                   $NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}
127             tripleo::profile::base::glance::api::tls_proxy_port:
128               get_param: [EndpointMap, GlanceInternal, port]
129             # Bind to localhost if internal TLS is enabled, since we put a TLs
130             # proxy in front.
131             glance::api::bind_host:
132               if:
133               - use_tls_proxy
134               - 'localhost'
135               - {get_param: [ServiceNetMap, GlanceApiNetwork]}
136       step_config: |
137         include ::tripleo::profile::base::glance::api
138       service_config_settings:
139         get_attr: [GlanceBase, role_data, service_config_settings]
140       upgrade_tasks:
141         - name: "PreUpgrade step0,validation: Check service openstack-glance-api is running"
142           shell: /usr/bin/systemctl show 'openstack-glance-api' --property ActiveState | grep '\bactive\b'
143           tags: step0,validation
144         - name: Stop glance_api service
145           tags: step2
146           service: name=openstack-glance-api state=stopped
147         - name: Stop and disable glance registry (removed for Ocata)
148           tags: step2
149           service: name=openstack-glance-registry state=stopped enabled=no
150         - name: Sync glance_api DB
151           tags: step5
152           command: glance-manage --config-file=/etc/glance/glance-api.conf db_sync