diff --git a/ci/environments/scenario001-multinode.yaml b/ci/environments/scenario001-multinode.yaml
index e459d2bf26..db6967e00b 100644
--- a/ci/environments/scenario001-multinode.yaml
+++ b/ci/environments/scenario001-multinode.yaml
@@ -11,7 +11,6 @@ parameter_defaults:
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/ci/environments/scenario002-multinode.yaml b/ci/environments/scenario002-multinode.yaml
index 6fd54f131c..636b3a26c8 100644
--- a/ci/environments/scenario002-multinode.yaml
+++ b/ci/environments/scenario002-multinode.yaml
@@ -9,7 +9,6 @@ parameter_defaults:
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/ci/environments/scenario003-multinode.yaml b/ci/environments/scenario003-multinode.yaml
index 32c9e8eb13..08e4d19f30 100644
--- a/ci/environments/scenario003-multinode.yaml
+++ b/ci/environments/scenario003-multinode.yaml
@@ -12,7 +12,6 @@ parameter_defaults:
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/ci/environments/scenario004-multinode.yaml b/ci/environments/scenario004-multinode.yaml
index ec075c18f0..e97113b094 100644
--- a/ci/environments/scenario004-multinode.yaml
+++ b/ci/environments/scenario004-multinode.yaml
@@ -14,7 +14,6 @@ parameter_defaults:
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/deployed-server/deployed-server-roles-data.yaml b/deployed-server/deployed-server-roles-data.yaml
index 76317a5f16..9795a00fbf 100644
--- a/deployed-server/deployed-server-roles-data.yaml
+++ b/deployed-server/deployed-server-roles-data.yaml
@@ -36,7 +36,6 @@
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/environments/tls-endpoints-public-dns.yaml b/environments/tls-endpoints-public-dns.yaml
index 4d8543c7d1..74c9f61da5 100644
--- a/environments/tls-endpoints-public-dns.yaml
+++ b/environments/tls-endpoints-public-dns.yaml
@@ -20,7 +20,6 @@ parameter_defaults:
     GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
     GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
     GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
-    GlanceRegistryInternal: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
     GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
     GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
     GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
diff --git a/environments/tls-endpoints-public-ip.yaml b/environments/tls-endpoints-public-ip.yaml
index f47a28e16d..17ff2feb03 100644
--- a/environments/tls-endpoints-public-ip.yaml
+++ b/environments/tls-endpoints-public-ip.yaml
@@ -20,7 +20,6 @@ parameter_defaults:
     GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
     GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
     GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'}
-    GlanceRegistryInternal: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
     GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
     GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
     GnocchiPublic: {protocol: 'https', port: '13041', host: 'IP_ADDRESS'}
diff --git a/environments/tls-everywhere-endpoints-dns.yaml b/environments/tls-everywhere-endpoints-dns.yaml
index 9265adad47..0aa2be08c1 100644
--- a/environments/tls-everywhere-endpoints-dns.yaml
+++ b/environments/tls-everywhere-endpoints-dns.yaml
@@ -20,7 +20,6 @@ parameter_defaults:
     GlanceAdmin: {protocol: 'https', port: '9292', host: 'CLOUDNAME'}
     GlanceInternal: {protocol: 'https', port: '9292', host: 'CLOUDNAME'}
     GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
-    GlanceRegistryInternal: {protocol: 'https', port: '9191', host: 'CLOUDNAME'}
     GnocchiAdmin: {protocol: 'https', port: '8041', host: 'CLOUDNAME'}
     GnocchiInternal: {protocol: 'https', port: '8041', host: 'CLOUDNAME'}
     GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
diff --git a/extraconfig/tasks/major_upgrade_controller_pacemaker_3.sh b/extraconfig/tasks/major_upgrade_controller_pacemaker_3.sh
index 6748f891eb..a3ce393f20 100755
--- a/extraconfig/tasks/major_upgrade_controller_pacemaker_3.sh
+++ b/extraconfig/tasks/major_upgrade_controller_pacemaker_3.sh
@@ -57,7 +57,7 @@ if [[ -n $(is_bootstrap_node) ]]; then
     # TODO: check if this can be triggered in puppet and removed from here
     ceilometer-upgrade --config-file=/etc/ceilometer/ceilometer.conf --skip-gnocchi-resource-types
     cinder-manage db sync
-    glance-manage --config-file=/etc/glance/glance-registry.conf db_sync
+    glance-manage db_sync
     heat-manage --config-file /etc/heat/heat.conf db_sync
     keystone-manage db_sync
     neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head
diff --git a/extraconfig/tasks/major_upgrade_pacemaker_migrations.sh b/extraconfig/tasks/major_upgrade_pacemaker_migrations.sh
index 6d02acc869..ae22a1e742 100644
--- a/extraconfig/tasks/major_upgrade_pacemaker_migrations.sh
+++ b/extraconfig/tasks/major_upgrade_pacemaker_migrations.sh
@@ -83,7 +83,6 @@ function services_to_migrate {
     openstack-cinder-api-clone
     openstack-cinder-scheduler-clone
     openstack-glance-api-clone
-    openstack-glance-registry-clone
     openstack-gnocchi-metricd-clone
     openstack-gnocchi-statsd-clone
     openstack-heat-api-cfn-clone
diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml
index fd4d05d410..23c1ce1ee7 100644
--- a/network/endpoints/endpoint_data.yaml
+++ b/network/endpoints/endpoint_data.yaml
@@ -76,11 +76,6 @@ Glance:
         net_param: GlanceApi
     port: 9292
 
-GlanceRegistry:
-    Internal:
-        net_param: GlanceRegistry
-    port: 9191
-
 Mysql:
     Internal:
         net_param: Mysql
diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml
index ca58282972..a17f1c9613 100644
--- a/network/endpoints/endpoint_map.yaml
+++ b/network/endpoints/endpoint_map.yaml
@@ -37,7 +37,6 @@ parameters:
       GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
       GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
       GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
-      GlanceRegistryInternal: {protocol: http, port: '9191', host: IP_ADDRESS}
       GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
       GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
       GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
@@ -2054,87 +2053,6 @@ outputs:
                         template: NETWORK_uri
             - ':'
             - get_param: [EndpointMap, GlancePublic, port]
-      GlanceRegistryInternal:
-        host:
-          str_replace:
-            template:
-              get_param: [EndpointMap, GlanceRegistryInternal, host]
-            params:
-              CLOUDNAME:
-                get_param:
-                - CloudEndpoints
-                - get_param: [ServiceNetMap, GlanceRegistryNetwork]
-              IP_ADDRESS:
-                get_param:
-                - NetIpMap
-                - str_replace:
-                    params:
-                      NETWORK:
-                        get_param: [ServiceNetMap, GlanceRegistryNetwork]
-                    template: NETWORK_uri
-        host_nobrackets:
-          str_replace:
-            template:
-              get_param: [EndpointMap, GlanceRegistryInternal, host]
-            params:
-              CLOUDNAME:
-                get_param:
-                - CloudEndpoints
-                - get_param: [ServiceNetMap, GlanceRegistryNetwork]
-              IP_ADDRESS:
-                get_param:
-                - NetIpMap
-                - get_param: [ServiceNetMap, GlanceRegistryNetwork]
-        port:
-          get_param: [EndpointMap, GlanceRegistryInternal, port]
-        protocol:
-          get_param: [EndpointMap, GlanceRegistryInternal, protocol]
-        uri:
-          list_join:
-          - ''
-          - - get_param: [EndpointMap, GlanceRegistryInternal, protocol]
-            - ://
-            - str_replace:
-                template:
-                  get_param: [EndpointMap, GlanceRegistryInternal, host]
-                params:
-                  CLOUDNAME:
-                    get_param:
-                    - CloudEndpoints
-                    - get_param: [ServiceNetMap, GlanceRegistryNetwork]
-                  IP_ADDRESS:
-                    get_param:
-                    - NetIpMap
-                    - str_replace:
-                        params:
-                          NETWORK:
-                            get_param: [ServiceNetMap, GlanceRegistryNetwork]
-                        template: NETWORK_uri
-            - ':'
-            - get_param: [EndpointMap, GlanceRegistryInternal, port]
-        uri_no_suffix:
-          list_join:
-          - ''
-          - - get_param: [EndpointMap, GlanceRegistryInternal, protocol]
-            - ://
-            - str_replace:
-                template:
-                  get_param: [EndpointMap, GlanceRegistryInternal, host]
-                params:
-                  CLOUDNAME:
-                    get_param:
-                    - CloudEndpoints
-                    - get_param: [ServiceNetMap, GlanceRegistryNetwork]
-                  IP_ADDRESS:
-                    get_param:
-                    - NetIpMap
-                    - str_replace:
-                        params:
-                          NETWORK:
-                            get_param: [ServiceNetMap, GlanceRegistryNetwork]
-                        template: NETWORK_uri
-            - ':'
-            - get_param: [EndpointMap, GlanceRegistryInternal, port]
       GnocchiAdmin:
         host:
           str_replace:
diff --git a/network/service_net_map.j2.yaml b/network/service_net_map.j2.yaml
index b2201452e1..8f1c4b4504 100644
--- a/network/service_net_map.j2.yaml
+++ b/network/service_net_map.j2.yaml
@@ -32,7 +32,6 @@ parameters:
       CinderApiNetwork: internal_api
       CinderIscsiNetwork: storage
       GlanceApiNetwork: storage
-      GlanceRegistryNetwork: internal_api
       IronicApiNetwork: ctlplane
       IronicNetwork: ctlplane
       KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml
index 575eee356d..7e0ecf0433 100644
--- a/overcloud-resource-registry-puppet.j2.yaml
+++ b/overcloud-resource-registry-puppet.j2.yaml
@@ -130,7 +130,6 @@ resource_registry:
   OS::TripleO::Services::BlockStorageCinderVolume: puppet/services/cinder-volume.yaml
   OS::TripleO::Services::Keystone: puppet/services/keystone.yaml
   OS::TripleO::Services::GlanceApi: puppet/services/glance-api.yaml
-  OS::TripleO::Services::GlanceRegistry: puppet/services/glance-registry.yaml
   OS::TripleO::Services::HeatApi: puppet/services/heat-api.yaml
   OS::TripleO::Services::HeatApiCfn: puppet/services/heat-api-cfn.yaml
   OS::TripleO::Services::HeatApiCloudwatch: puppet/services/heat-api-cloudwatch.yaml
diff --git a/puppet/services/glance-api.yaml b/puppet/services/glance-api.yaml
index 0a7c90e106..6d01bd4887 100644
--- a/puppet/services/glance-api.yaml
+++ b/puppet/services/glance-api.yaml
@@ -80,12 +80,8 @@ outputs:
             glance::api::bind_port: {get_param: [EndpointMap, GlanceInternal, port]}
             glance::api::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
             glance::api::authtoken::auth_url: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
-            glance::api::registry_host:
-              str_replace:
-                template: "'REGISTRY_HOST'"
-                params:
-                  REGISTRY_HOST: {get_param: [EndpointMap, GlanceRegistryInternal, host]}
-            glance::api::registry_client_protocol: {get_param: [EndpointMap, GlanceRegistryInternal, protocol] }
+            glance::api::enable_v1_api: false
+            glance::api::enable_v2_api: true
             glance::api::authtoken::password: {get_param: GlancePassword}
             glance::api::enable_proxy_headers_parsing: true
             glance::api::debug: {get_param: Debug}
diff --git a/puppet/services/glance-base.yaml b/puppet/services/glance-base.yaml
index d715ac02b8..f55489828b 100644
--- a/puppet/services/glance-base.yaml
+++ b/puppet/services/glance-base.yaml
@@ -105,8 +105,6 @@ outputs:
         glance::notify::rabbitmq::rabbit_password: {get_param: RabbitPassword}
         glance::notify::rabbitmq::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
         glance::notify::rabbitmq::notification_driver: messagingv2
-        glance::registry::db::database_db_max_retries: -1
-        glance::registry::db::database_max_retries: -1
         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}
diff --git a/puppet/services/glance-registry.yaml b/puppet/services/glance-registry.yaml
deleted file mode 100644
index 914c1584e0..0000000000
--- a/puppet/services/glance-registry.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-heat_template_version: ocata
-
-description: >
-  OpenStack Glance Registry service configured with Puppet
-
-parameters:
-  ServiceNetMap:
-    default: {}
-    description: Mapping of service_name -> network name. Typically set
-                 via parameter_defaults in the resource registry.  This
-                 mapping overrides those in ServiceNetMapDefaults.
-    type: json
-  DefaultPasswords:
-    default: {}
-    type: json
-  EndpointMap:
-    default: {}
-    description: Mapping of service endpoint -> protocol. Typically set
-                 via parameter_defaults in the resource registry.
-    type: json
-  Debug:
-    default: ''
-    description: Set to True to enable debugging on all services.
-    type: string
-  GlancePassword:
-    description: The password for the glance service and db account, used by the glance services.
-    type: string
-    hidden: true
-  GlanceWorkers:
-    default: ''
-    description: |
-      Number of worker processes for glance registry. If left unset (empty
-      string), the default value will result in the configuration being left
-      unset and a system-dependent default value will be chosen (e.g.: number of
-      processors). Please note that this will create a large number of processes
-      on systems with a large number of CPUs resulting in excess memory
-      consumption. It is recommended that a suitable non-default value be
-      selected on such systems.
-    type: string
-  MonitoringSubscriptionGlanceRegistry:
-    default: 'overcloud-glance-registry'
-    type: string
-  GlanceRegistryLoggingSource:
-    type: json
-    default:
-      tag: openstack.glance.registry
-      path: /var/log/glance/registry.log
-
-resources:
-  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 Registry role.
-    value:
-      service_name: glance_registry
-      monitoring_subscription: {get_param: MonitoringSubscriptionGlanceRegistry}
-      logging_source: {get_param: GlanceRegistryLoggingSource}
-      logging_groups:
-        - glance
-      config_settings:
-        map_merge:
-          - get_attr: [GlanceBase, role_data, config_settings]
-
-          - glance::registry::database_connection:
-              list_join:
-                - ''
-                - - {get_param: [EndpointMap, MysqlInternal, protocol]}
-                  - '://glance:'
-                  - {get_param: GlancePassword}
-                  - '@'
-                  - {get_param: [EndpointMap, MysqlInternal, host]}
-                  - '/glance'
-                  - '?bind_address='
-                  - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
-            glance::registry::authtoken::password: {get_param: GlancePassword}
-            glance::registry::authtoken::project_name: 'service'
-            glance::registry::pipeline: 'keystone'
-            glance::registry::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
-            glance::registry::authtoken::auth_url: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
-            glance::registry::debug: {get_param: Debug}
-            glance::registry::workers: {get_param: GlanceWorkers}
-            tripleo.glance_registry.firewall_rules:
-              '112 glance_registry':
-                dport:
-                  - 9191
-            # NOTE: bind IP is found in Heat replacing the network name with the
-            # local node IP for the given network; replacement examples
-            # (eg. for internal_api):
-            # internal_api -> IP
-            # internal_api_uri -> [IP]
-            # internal_api_subnet - > IP/CIDR
-            glance::registry::bind_host: {get_param: [ServiceNetMap, GlanceRegistryNetwork]}
-      step_config: |
-        include ::tripleo::profile::base::glance::registry
-      service_config_settings:
-          get_attr: [GlanceBase, role_data, config_settings]
-      upgrade_tasks:
-        - name: Stop glance_registry service
-          tags: step2
-          service: name=openstack-glance-registry state=stopped
-        - name: Start glance_registry service
-          tags: step6
-          service: name=openstack-glance-registry state=started
diff --git a/roles_data.yaml b/roles_data.yaml
index 39d91aa55c..bbb1ab7aae 100644
--- a/roles_data.yaml
+++ b/roles_data.yaml
@@ -36,7 +36,6 @@
     - OS::TripleO::Services::Kernel
     - OS::TripleO::Services::Keystone
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::HeatApi
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
diff --git a/roles_data_undercloud.yaml b/roles_data_undercloud.yaml
index 30f9509afa..2759429ce8 100644
--- a/roles_data_undercloud.yaml
+++ b/roles_data_undercloud.yaml
@@ -9,7 +9,6 @@
     - OS::TripleO::Services::Apache
     - OS::TripleO::Services::RabbitMQ
     - OS::TripleO::Services::GlanceApi
-    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::SwiftProxy
     - OS::TripleO::Services::SwiftStorage
     - OS::TripleO::Services::SwiftRingBuilder