Open Data Hub logo

Deploying Ceph Nano Object Storage with Open Data Hub

The ceph-nano component of Open Data Hub can provide minimal object storage for use in your development environment.

NOTE: If you need to deploy persistent, large scale object storage for use in a production environment, we recommend Rook Ceph or OpenShift Container Storage for scaleable, high availability storage running inside of your OpenShift cluster.

  1. When deploying Open Data Hub, you will need to include the ceph-nano component in your kfdef file.

    Here is an example kfdef used in the basic tutorial that we have modified to deploy the ceph nano component

    # ODH uses the KfDef manifest format to specify what components will be included in the deployment
    apiVersion: kfdef.apps.kubeflow.org/v1
    kind: KfDef
    metadata:
      # The name of your deployment
      name: opendatahub
    # only the components listed in the `KFDef` resource will be deployed:
    spec:
      applications:
        # REQUIRED: This contains all of the common options used by all ODH components
        - kustomizeConfig:
            repoRef:
              name: manifests
              path: odh-common
          name: odh-common
        # Create the SecurityContextConstraint to grant the ceph-nano service account anyuid permissions
        - kustomizeConfig:
            repoRef:
              name: manifests
              path: ceph/object-storage/scc
          name: ceph-nano-scc
        # Deploy ceph-nano for minimal object storage running in a pod
        - kustomizeConfig:
            repoRef:
              name: manifests
              path: ceph/object-storage/nano
          name: ceph-nano
        # Deploy Radanalytics Spark Operator
        - kustomizeConfig:
            repoRef:
              name: manifests
              path: radanalyticsio/spark/cluster
          name: radanalyticsio-spark-cluster
        # Deploy Open Data Hub JupyterHub
        - kustomizeConfig:
            parameters:
              - name: s3_endpoint_url
                value: "http://ceph-nano-0"
            repoRef:
              name: manifests
              path: jupyterhub/jupyterhub
          name: jupyterhub
        # Deploy addtional Open Data Hub Jupyter notebooks
        - kustomizeConfig:
            overlays:
              - additional
            repoRef:
              name: manifests
              path: jupyterhub/notebook-images
          name: notebook-images
      # Reference to all of the git repo archives that contain component kustomize manifests
      repos:
        # Official Open Data Hub v1.0.0 component manifests repo
        # This shows that we will be deploying components from an archive of the odh-manifests repo tagged for v1.0.0
        - name: manifests
          uri: 'https://github.com/opendatahub-io/odh-manifests/tarball/v1.0.0'
    
  2. Once the ceph-nano-0 pod is running, you can access the object storage from any pod inside the namespace use the endpoint http://ceph-nano-0. S3 credentials to access object storage will be saved in the secret name ceph-nano-credentials.

    NOTE: This object storage is for DEVELOPMENT PURPOSES ONLY. The access credentials and stored objects DO NOT persist across pod restarts and will be changed/deleted when a new pod is spawned.