Skip to content

Add some very basic initial documentation around our storage options.

DJ Mountney requested to merge storage-doc into master

Closes https://gitlab.com/charts/gitlab/issues/397

I've been doing some testing of alternative storage configurations, and have briefly added a document where we can start filling in more/better information as questions come in.

This week I have tested:

  • Manually creating a PV of a pre-existing GCE disk, and having gitaly claim it using volumeName and I also tested with using labelExpression.
  • Setting up a dynamic provisioner for NFS, with custom storage class, and using NFS for gitaly.

I also saw that our approach to defining the PVCs in our charts, but not the volumes, aligns with the current kubernetes best practices. (even if it isn't the same as what other charts have done) https://kubernetes.io/docs/concepts/storage/persistent-volumes/#writing-portable-configuration

I also noticed that GKE's default storage class reclaimPolicy of 'Delete' really isn't ideal for Production GitLab deploys.

I think as a followup item we should:

  • make a global storageClass setting that can easily be applied to all our charts

As we will want pretty much all production install to be using a custom storage class, and it would be nice to configure it with a single parameter.


Side-note, I used the new nfs-server-provisioner chart to setup a NFS server pod, backed by a GCE disk to test the NFS settings. (It has an outstanding bug in review I had to work around, but otherwise made testing NFS easier)

It's not something our users will probably be using, but it's good for testing.

But a related chart that is being worked on that our users could potentiall use is the nfs-client-provisioner: https://github.com/kubernetes/charts/pull/2779 and we should keep our eyes on that.

Merge request reports