Prepare your environment

  1. Confirm that the default StorageClass on your cluster supports dynamic volume provisioning. For more information, refer to the Kubernetes documentation Change the default StorageClass.

    If a default StorageClass is not set, you can specify a StorageClass to MSR by providing the following additional parameters to the custom resource manifest:

    spec:
      registry:
        storage:
          persistentVolume:
            storageClassName: '<my-storageclass>'
      postgresql:
        volume:
          storageClass: '<my-storageclass>'
      rethinkdb:
        cluster:
          persistentVolume:
            storageClass: '<my-storageclass>'
    

    The first of these three parameters is only applicable when you install MSR with a persistentVolume backend, the default setting:

    spec:
      registry:
        storage:
          backend: 'persistentVolume'
    

    MSR creates PersistentVolumeClaims with either the ReadWriteOnce or the ReadWriteMany access modes, depending on the purpose for which they are created. Thus the StorageClass provisioner that MSR uses must be able to provision PersistentVolumes with at least the ReadWriteOnce and the ReadWriteMany access modes.

    The <release-name> PVC is created by default with the ReadWriteMany access mode. If you choose to install MSR with a persistentVolume backend, you can override this default access mode by adding the following parameter to the custom resource manifest:

    spec:
      registry:
        storage:
          persistentVolume:
            accessModes: ['<new-access-mode>']
    
  2. On the Internet-connected computer, configure your environment to use the kubeconfig of the offline Kubernetes cluster. You can do this by setting a KUBECONFIG environment variable.

See also

Kubernetes official documentation: Storage Classes