domino logo
Latest (5.4)
  • About Domino
  • Architecture
  • Security and Compliance
  • Domino Infrastructure
  • Kubernetes Infrastructure
  • Installation
  • Execution Resources
  • Users
  • Keycloak Authentication Service
  • Data
  • Projects
  • Environments
  • Model Monitoring Notifications
  • Control Center
  • Logs and Monitoring
  • Backup and Restore
  • Disaster Recovery
  • Configuration Reference
  • Run a System Scan
  • MongoDB Console
  • Get Help
domino logo
About Domino
Domino Data LabKnowledge BaseData Science BlogTraining
Admin Guide
>
Data
>
External Data
>
External Data Volumes
>
Set up Kubernetes PV and PVC

Set up Kubernetes PV and PVC

Note

Domino runs on a Kubernetes cluster and EDVs must be backed by an underlying Kubernetes Persistent Volume (PV). That persistent volume must be bound to a Persistent Volume Claim (PVC) that must be labeled with a key dominodatalab.com/external-data-volume. The value of that key represents the type of external data volume. The supported types are NFS, SMB, EFS, and Generic. The Generic type lets you attach your own volumes to Domino that you must deploy and maintain in your environment. Finally, the PVC must be created in the Domino compute namespace.

The following are example yaml files for creating PVs and PVCs for each of the supported EDV types.

Note

NFS PV/PVC example

The following is a simple static provisioning example that you can use to create the required PV and PVC. You can provision the PV that refers to the NFS share to expose in Domino using any mechanism appropriate for their environment.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
   name: pvc-nfs
   namespace: YOUR-DOMINO-COMPUTE-NAMESPACE    #change for your deployment
   labels:
      "dominodatalab.com/external-data-volume": "NFS"
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   resources:
      requests:
         storage: 30Gi
   volumeName: pv-nfs
---
apiVersion: v1
kind: PersistentVolume
metadata:
   name: pv-nfs
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   capacity:
      storage: 30Gi
   # Optionally explicitly specify a reference to the PVC that will be using this PV
   # Name and namespace must match the PVC created
   claimRef:
      apiVersion: v1
      kind: PersistentVolumeClaim
      name: pvc-nfs
      namespace: YOUR-DOMINO-COMPUTE-NAMESPACE   #change for your deployment
   persistentVolumeReclaimPolicy: Retain
   nfs:
      path: /mnt/export
      server: 10.0.0.26

EFS PV/PVC example

The following is a simple static provisioning example that you can use to create the required PV and PVC. For more detailed information, see the EFS CSI documentation. You can only use the configuration options supported by the EFS CSI driver.

---
apiVersion: v1
kind: PersistentVolume
metadata:
   name: pv-efs
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   capacity:
      storage: 30Gi
   # Optionally explicitly specify a reference to the PVC that will be using this PV
   # Name and namespace must match the PVC created
   claimRef:
      apiVersion: v1
      kind: PersistentVolumeClaim
      name: pvc-efs
      namespace: YOUR-DOMINO-COMPUTE-NAMESPACE   #change for your deployment
   persistentVolumeReclaimPolicy: Retain
   csi:
      driver: efs.csi.aws.com
      volumeHandle: <EFS file system id>:/<path>    #the path within the file system is optional
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
   name: pvc-efs
   namespace: YOUR-DOMINO-COMPUTE-NAMESPACE
   labels:
      "dominodatalab.com/external-data-volume": "EFS"
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   resources:
      requests:
         storage: 30Gi
   volumeName: pv-efs
----

SMB PV/PVC example

Note

+

release_overrides:
  csi-driver-smb:
    installed: true

The following is a simple static provisioning example that you can use to create the required PV and PVC. For more detailed information, see the SMB CSI documentation. You can only use the configuration options supported by the SMB CSI driver.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
   name: pvc-smb
   namespace: YOUR-DOMINO-COMPUTE-NAMESPACE
   labels:
      "dominodatalab.com/external-data-volume": "SMB"
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   resources:
      requests:
         storage: 30Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
   name: pv-smb
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   capacity:
      storage: 100Gi
   claimRef:
      apiVersion: v1
      kind: PersistentVolumeClaim
      name: pvc-smb
      namespace: YOUR-DOMINO-COMPUTE-NAMESPACE    #change for your deployment
   persistentVolumeReclaimPolicy: Retain
   csi:
      driver: smb.csi.k8s.io
      nodeStageSecretRef:
         name: SMB-SECRET-NAME
         namespace: NAMESPACE-OF-SMB-SECRET
      volumeAttributes:
         source: //10.0.0.11/Share        #SMB server address and path
      volumeHandle: volume-handle-unique  # must be unique id for the cluster
   mountOptions:
   - dir_mode=0777
   - file_mode=0777
   - vers=3.0

Generic PV/PVC example

The following is a simple static provisioning example that you can use to create a required generic PV and PVC with the EDV type as Generic. Registered EDVs are available to add to projects and will be mounted to executions.

You must configure the PV based on the documentation available for the system that you are using.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
   name: generic-EDV
   namespace: YOUR-DOMINO-COMPUTE-NAMESPACE    #change for your deployment
   labels:
      "dominodatalab.com/external-data-volume": "Generic"
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   resources:
      requests:
         storage: 30Gi
   volumeName: generic-EDV
---
apiVersion: v1
kind: PersistentVolume
metadata:
   name: generic-EDV
spec:
   storageClassName: ""
   accessModes:
   - ReadWriteMany
   capacity:
      storage: 30Gi
   # Optionally explicitly specify a reference to the generic EDV that will be using this generic EDV
   # Name and namespace must match the generic EDV created
   claimRef:
      apiVersion: v1
      kind: PersistentVolumeClaim
      name: generic-EDV
      namespace: YOUR-DOMINO-COMPUTE-NAMESPACE   #change for your deployment
   persistentVolumeReclaimPolicy: Retain
   nfs:
      path: /mnt/export
      server: 10.0.0.26

All properly labeled PVCs will be available candidates to register in the Domino External Data Volumes page.

Domino Data LabKnowledge BaseData Science BlogTraining
Copyright © 2022 Domino Data Lab. All rights reserved.