Add some very basic initial documentation around our storage options.
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 usinglabelExpression
. - 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.