Using the official helm chart and documentation, I want to deploy GitLab to Kubernetes. The storage guide shows how to store persistent data and also offers example Helm values. Sadly this doesn't work for all services bundled in GitLabs chart. I want to set local-path
as storage class but some pvcs ignore this:
$ kg pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
gitlab-minio Pending local-path 61s
gitlab-postgresql Pending local-path 61s
gitlab-prometheus-server Pending 61s
gitlab-redis Pending local-path 61s
repo-data-gitlab-gitaly-0 Pending 19h
You can see that Prometheus and Gitaly doesn't have a storage class, algouth I set it in the values:
global:
gitlabVersion: 11.0.1
hosts:
domain: gitlab.example.com
https: true
gitlab:
https: true
minio:
enabled: true
prometheus:
enabled: false
ingress:
enabled: true
tls:
enabled: true
secretName: gitlab-tls
configureCertmanager: false
annotations:
certmanager.k8s.io/cluster-issuer: "letsencrypt-prod"
certmanager:
install: false
gitlab:
gitaly:
persistence:
storageClass: local-path
size: 50Gi
minio:
persistence:
enabled: true
storageClass: local-path
size: 20Gi
accessMode: ReadWriteOnce
postgresql:
persistence:
enabled: true
storageClass: local-path
size: 10Gi
redis:
persistence:
enabled: true
storageClass: local-path
size: 5Gi
It also confuses me that some values need to be set under the global
key, where others have their own key. But my primary question is: Why is my storageClass
ignored for gitaly
, altough I followed the example from the docs? And how can I configure the pvc of Prometheus, which isn't even part of this example?