Merge "Remove root_template and root_environment from capabilities-map.yaml"
[apex-tripleo-heat-templates.git] / puppet / services / glance-api.yaml
index 89f2ee8..f61e615 100644 (file)
@@ -48,6 +48,74 @@ parameters:
   EnableInternalTLS:
     type: boolean
     default: false
+  CephClientUserName:
+    default: openstack
+    type: string
+  Debug:
+    default: ''
+    description: Set to True to enable debugging on all services.
+    type: string
+  GlanceNotifierStrategy:
+    description: Strategy to use for Glance notification queue
+    type: string
+    default: noop
+  GlanceLogFile:
+    description: The filepath of the file to use for logging messages from Glance.
+    type: string
+    default: ''
+  GlanceBackend:
+    default: swift
+    description: The short name of the Glance backend to use. Should be one
+      of swift, rbd, or file
+    type: string
+    constraints:
+    - allowed_values: ['swift', 'file', 'rbd']
+  GlanceNfsEnabled:
+    default: false
+    description: >
+      When using GlanceBackend 'file', mount NFS share for image storage.
+    type: boolean
+  GlanceNfsShare:
+    default: ''
+    description: >
+      NFS share to mount for image storage (when GlanceNfsEnabled is true)
+    type: string
+  GlanceNfsOptions:
+    default: 'intr,context=system_u:object_r:glance_var_lib_t:s0'
+    description: >
+      NFS mount options for image storage (when GlanceNfsEnabled is true)
+    type: string
+  GlanceRbdPoolName:
+    default: images
+    type: string
+  RabbitPassword:
+    description: The password for RabbitMQ
+    type: string
+    hidden: true
+  RabbitUserName:
+    default: guest
+    description: The username for RabbitMQ
+    type: string
+  RabbitClientPort:
+    default: 5672
+    description: Set rabbit subscriber port, change this if using SSL
+    type: number
+  RabbitClientUseSSL:
+    default: false
+    description: >
+        Rabbit client subscriber parameter to specify
+        an SSL connection to the RabbitMQ host.
+    type: string
+  KeystoneRegion:
+    type: string
+    default: 'regionOne'
+    description: Keystone region for endpoint
+  GlanceApiPolicies:
+    description: |
+      A hash of policies to configure for Glance API.
+      e.g. { glance-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
+    default: {}
+    type: json
 
 conditions:
   use_tls_proxy: {equals : [{get_param: EnableInternalTLS}, true]}
@@ -62,13 +130,6 @@ resources:
       EndpointMap: {get_param: EndpointMap}
       EnableInternalTLS: {get_param: EnableInternalTLS}
 
-  GlanceBase:
-    type: ./glance-base.yaml
-    properties:
-      ServiceNetMap: {get_param: ServiceNetMap}
-      DefaultPasswords: {get_param: DefaultPasswords}
-      EndpointMap: {get_param: EndpointMap}
-
 outputs:
   role_data:
     description: Role data for the Glance API role.
@@ -80,7 +141,6 @@ outputs:
         - glance
       config_settings:
         map_merge:
-          - get_attr: [GlanceBase, role_data, config_settings]
           - get_attr: [TLSProxyBase, role_data, config_settings]
           - glance::api::database_connection:
               list_join:
@@ -101,6 +161,7 @@ outputs:
             glance::api::enable_proxy_headers_parsing: true
             glance::api::debug: {get_param: Debug}
             glance::api::workers: {get_param: GlanceWorkers}
+            glance::policy::policies: {get_param: GlanceApiPolicies}
             tripleo.glance_api.firewall_rules:
               '112 glance_api':
                 dport:
@@ -132,17 +193,62 @@ outputs:
               - use_tls_proxy
               - 'localhost'
               - {get_param: [ServiceNetMap, GlanceApiNetwork]}
+            glance_notifier_strategy: {get_param: GlanceNotifierStrategy}
+            glance_log_file: {get_param: GlanceLogFile}
+            glance::backend::swift::swift_store_auth_address: {get_param: [EndpointMap, KeystoneInternal, uri] }
+            glance::backend::swift::swift_store_user: service:glance
+            glance::backend::swift::swift_store_key: {get_param: GlancePassword}
+            glance::backend::swift::swift_store_create_container_on_put: true
+            glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
+            glance::backend::rbd::rbd_store_user: {get_param: CephClientUserName}
+            glance_backend: {get_param: GlanceBackend}
+            glance::notify::rabbitmq::rabbit_userid: {get_param: RabbitUserName}
+            glance::notify::rabbitmq::rabbit_port: {get_param: RabbitClientPort}
+            glance::notify::rabbitmq::rabbit_password: {get_param: RabbitPassword}
+            glance::notify::rabbitmq::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
+            glance::notify::rabbitmq::notification_driver: messagingv2
+            tripleo::profile::base::glance::api::glance_nfs_enabled: {get_param: GlanceNfsEnabled}
+            tripleo::glance::nfs_mount::share: {get_param: GlanceNfsShare}
+            tripleo::glance::nfs_mount::options: {get_param: GlanceNfsOptions}
+      service_config_settings:
+        keystone:
+          glance::keystone::auth::public_url: {get_param: [EndpointMap, GlancePublic, uri]}
+          glance::keystone::auth::internal_url: {get_param: [EndpointMap, GlanceInternal, uri]}
+          glance::keystone::auth::admin_url: {get_param: [EndpointMap, GlanceAdmin, uri]}
+          glance::keystone::auth::password: {get_param: GlancePassword }
+          glance::keystone::auth::region: {get_param: KeystoneRegion}
+          glance::keystone::auth::tenant: 'service'
+        mysql:
+          glance::db::mysql::password: {get_param: GlancePassword}
+          glance::db::mysql::user: glance
+          glance::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
+          glance::db::mysql::dbname: glance
+          glance::db::mysql::allowed_hosts:
+            - '%'
+            - "%{hiera('mysql_bind_host')}"
       step_config: |
         include ::tripleo::profile::base::glance::api
-      service_config_settings:
-        get_attr: [GlanceBase, role_data, service_config_settings]
       upgrade_tasks:
+        - name: Check if glance_api is deployed
+          command: systemctl is-enabled openstack-glance-api
+          tags: common
+          ignore_errors: True
+          register: glance_api_enabled
+        #(TODO) Remove all glance-registry bits in Pike.
+        - name: Check if glance_registry is deployed
+          command: systemctl is-enabled openstack-glance-registry
+          tags: common
+          ignore_errors: True
+          register: glance_registry_enabled
         - name: "PreUpgrade step0,validation: Check service openstack-glance-api is running"
           shell: /usr/bin/systemctl show 'openstack-glance-api' --property ActiveState | grep '\bactive\b'
           tags: step0,validation
+          when: glance_api_enabled.rc == 0
         - name: Stop glance_api service
           tags: step1
+          when: glance_api_enabled.rc == 0
           service: name=openstack-glance-api state=stopped
         - name: Stop and disable glance registry (removed for Ocata)
           tags: step1
+          when: glance_registry_enabled.rc == 0
           service: name=openstack-glance-registry state=stopped enabled=no