Deploy Rok Registry Components

At this point, you have configured everything and you are ready to install the Rok Registry. In this section we will guide you through deploying Rok Registry. More specifically, you will create the Rok Registry namespaces and then deploy Rok Registry Operator, Rok Registry external services, and RokRegistryCluster CR.

Choose one of the following options in order to deploy Rok Registry:

Option 1: Deploy Rok Registry Components Automatically (preferred)

Rok Registry does not currently support automatic deployment of its components. Please follow Option 2: Deploy Rok Registry Components Manually to deploy Rok Registry.

Option 2: Deploy Rok Registry Components Manually

If you want to deploy Rok Registry manually, follow the instructions below.

Procedure

  1. Go to your GitOps repository, inside your rok-tools management environment:

    root@rok-tools:~# cd ~/ops/deployments
  2. Create the rok-registry and rok-registry-system namespaces needed to host Rok Registry and its system components:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-registry-namespaces/overlays/deploy
  3. Deploy the Rok Registry Operator:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-operator/overlays/registry/deploy
  4. Deploy Istio CRDs and resources in the istio-system namespace:

    root@rok-tools:~/ops/deployments# rok-deploy --apply install/istio
  5. Deploy etcd.

    1. Edit the kustomization manifest. Choose one of the following options, based on your cloud provider:

      Edit rok/rok-external-services/etcd/overlays/registry/deploy/kustomization.yaml to use the eks overlay as base:

      bases: - ../eks # <-- Edit this line to point to the eks overlay

      This section is a work in progress.

      Edit rok/rok-external-services/etcd/overlays/registry/deploy/kustomization.yaml to use the gke overlay as base:

      bases: - ../gke # <-- Edit this line to point to the gke overlay
    2. Commit your changes:

      root@rok-tools:~/ops/deployments# git commit -am "Configure Registry's etcd for our cloud provider"
    3. Apply the manifests:

      root@rok-tools:~/ops/deployments# rok-deploy --apply \ > rok/rok-external-services/etcd/overlays/registry/deploy
  6. Deploy PostgreSQL.

    1. Edit the kustomization manifest. Choose one of the following options, based on your cloud provider:

      Edit rok/rok-external-services/postgresql/overlays/registry/deploy/kustomization.yaml to use the eks overlay as base:

      bases: - ../eks # <-- Edit this line to point to the eks overlay

      This section is a work in progress.

      Edit rok/rok-external-services/postgresql/overlays/registry/deploy/kustomization.yaml to use the gke overlay as base:

      bases: - ../gke # <-- Edit this line to point to the gke overlay
    2. Commit your changes:

      root@rok-tools:~/ops/deployments# git commit -am "Configure Registry's PostgreSQL for our cloud provider"
    3. Apply the manifests:

      root@rok-tools:~/ops/deployments# rok-deploy --apply \ > rok/rok-external-services/postgresql/overlays/registry/deploy
  7. Create the kubeflow namespace:

    root@rok-tools:~/ops/deployments# rok-deploy --apply kubeflow/manifests/common/kubeflow-namespace/overlays/deploy
  8. Deploy the Kubeflow gateway:

    root@rok-tools:~/ops/deployments# rok-deploy --apply kubeflow/manifests/common/istio-1-14/kubeflow-istio-resources/overlays/deploy
  9. Deploy Dex in the auth namespace:

    root@rok-tools:~/ops/deployments# rok-deploy --apply kubeflow/manifests/common/dex/overlays/deploy
  10. Delete the Dex Pod to reload any changed configuration:

    root@rok-tools:~/ops/deployments# kubectl delete pods -n auth -l app=dex
  11. Deploy the RokRegistryCluster CR:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-registry-cluster/overlays/deploy

Verify

  1. Verify that the Rok Registry cluster is up and running. Check that field HEALTH is OK:

    root@rok-tools:/# kubectl get rokregistrycluster -n rok-registry NAME VERSION HEALTH TOTAL MEMBERS READY MEMBERS PHASE AGE rok-registry l0-release-v1.1-pre-2-g6b0b76380 OK 1 1 Running 42m
  2. View events related to the newly deployed Rok Registry cluster:

    root@rok-tools:/# kubectl describe rokregistrycluster -n rok-registry rok-registry
Troubleshooting
Initialization failed

If, for any reason, the cluster initialization failed:

  1. Follow the Rok Cleanup guide and delete the existing Rok cluster along with its state.
  2. Re-deploy Rok Registry starting from step 5 of the above manual procedure (deploy the external services).

Summary

You have successfully deployed Rok Registry on Kubernetes.

See also

If you are planning to integrate Rok Registry with an external OIDC Provider follow the Rok Registry Authentication guide.

What’s Next

The next step is to test your Rok Registry installation.