:_mod-docs-content-type: PROCEDURE
[id="adopting-the-openstack-dashboard_{context}"]

= Adopting the {dashboard_service}

[role="_abstract"]
To adopt the {dashboard_first_ref}, you patch an existing `OpenStackControlPlane` custom resource (CR) that has the {dashboard_service} disabled. The patch starts the service with the configuration parameters that are provided by the {rhos_prev_long} environment.

.Prerequisites

* You adopted Memcached. For more information, see xref:deploying-backend-services_migrating-databases[Deploying back-end services].
* You adopted the {identity_service_first_ref}. For more information, see xref:adopting-the-identity-service_adopt-control-plane[Adopting the {identity_service}].

.Procedure

* Patch the `OpenStackControlPlane` CR to deploy the {dashboard_service}:
+
----
$ oc patch openstackcontrolplane openstack --type=merge --patch '
spec:
  horizon:
    enabled: true
    apiOverride:
      route: {}
    template:
      memcachedInstance: memcached
      secret: osp-secret
'
----

.Verification

. Verify that the {dashboard_service} instance is successfully deployed and ready:
+
----
$ oc get horizon
----

. Confirm that the {dashboard_service} is reachable and returns a `200` status code:
+
----
PUBLIC_URL=$(oc get horizon horizon -o jsonpath='{.status.endpoint}')
curl --silent --output /dev/stderr --head --write-out "%{http_code}" "$PUBLIC_URL/dashboard/auth/login/?next=/dashboard/" -k | grep 200
----
