# Install Kubeflow Model Registry This folder contains [Kubeflow Model Registry](https://www.kubeflow.org/docs/components/model-registry/installation/) Kustomize manifests ## Overview This is the full installation guide, for a quick install in an existing Kubeflow installation, follow [these instructions](https://www.kubeflow.org/docs/components/model-registry/installation/). **Ensure you are running all these commands from the directory containing this README.md file (e.g.: you could check with `pwd`).** ## Kubeflow Central Dashboard Installation These instructions assume that you've installed Kubeflow from the [manifests](https://github.com/kubeflow/manifests/), if you're using a distribution consult its documentation instead. Kubeflow Central Dashboard uses [Profiles](https://www.kubeflow.org/docs/components/central-dash/profiles/) to handle user namespaces and permissions. By default, the manifests deploy the Model Registry instance in the `kubeflow` namespace, to install a compatible version of Model Registry for Kubeflow, you should deploy a separate instance of Model Registry in the profile's namespace. For that just run: ```sh PROFILE_NAME= for DIR in options/istio overlays/db ; do (cd $DIR; kustomize edit set namespace $PROFILE_NAME; kubectl apply -k .); done ``` > **⚠️ Warning:** If you're not sure of the profile name, you can find it in the name space drop-down on the Kubeflow Dashboard. Check everything is up and running: ```bash kubectl wait --for=condition=available-n ${PROFILE_NAME} deployment/model-registry-deployment --timeout=2m kubectl logs -n ${PROFILE_NAME} deployment/model-registry-deployment ``` Now, to install the Model Registry UI as a Kubeflow component, you need first to deploy the Model Registry UI: ```bash kubectl apply -k options/ui/overlays/istio -n kubeflow ``` And then to make it accessible through Kubeflow Central Dashboard, you need to edit the `centraldashboard-config` ConfigMap to add the Model Registry UI link to the Central Dashboard by running the following command: ```bash kubectl get configmap centraldashboard-config -n kubeflow -o json | jq '.data.links |= (fromjson | .menuLinks += [{"icon": "assignment", "link": "/model-registry/", "text": "Model Registry", "type": "item"}] | tojson)' | kubectl apply -f - -n kubeflow ``` Alternatively, you can edit the ConfigMap manually by running: ```bash kubectl edit configmap -n kubeflow centraldashboard-config ``` ```yaml apiVersion: v1 data: links: |- { "menuLinks": [ { "icon": "assignment", "link": "/model-registry/", "text": "Model Registry", "type": "item" }, ... ``` Now you should be able to see the Model Registry UI in the Kubeflow Central Dashboard, and access to the Model Registry deployment in the profile namespace. ### Uninstall To uninstall the Kubeflow Model Registry run: ```bash # Uninstall Model Registry Instance PROFILE_NAME= for DIR in options/istio overlays/db ; do (cd $DIR; kustomize edit set namespace $PROFILE_NAME; kubectl delete -k .); done # Uninstall Model Registry UI kubectl delete -k options/ui/overlays/istio -n kubeflow ``` ## Model Registry as a separate component Installation The following instructions will summarize how to deploy Model Registry as separate component in the context of a default Kubeflow >=1.9 installation. ```bash kubectl apply -k overlays/db ``` As the default Kubeflow installation provides an Istio mesh, apply the necessary manifests: ```bash kubectl apply -k options/istio ``` Check everything is up and running: ```bash kubectl wait --for=condition=available -n kubeflow deployment/model-registry-deployment --timeout=2m kubectl logs -n kubeflow deployment/model-registry-deployment ``` Optionally, you can also port-forward the REST API container port of Model Registry to interact with it from your terminal: ```bash kubectl port-forward svc/model-registry-service -n kubeflow 8081:8080 ``` And then, from another terminal: ```bash curl -sX 'GET' \ 'http://localhost:8081/api/model_registry/v1alpha3/registered_models?pageSize=100&orderBy=ID&sortOrder=DESC' \ -H 'accept: application/json' | jq ``` ### Usage For a basic usage of the Kubeflow Model Registry, follow the [Kubeflow Model Registry getting started documentation](https://www.kubeflow.org/docs/components/model-registry/getting-started/) ### Uninstall To uninstall the Kubeflow Model Registry run: ```bash # Delete istio options kubectl delete -k options/istio # Delete model registry db and deployment kubectl delete -k overlays/db ```