External Object Storage only for some stores
Summary
I configured gitlab to use an external object storage for the uploads but not for the artifacts/lfs/registry and the config is ignored. It looks like minio must either be enabled or disabled globally. The artifacts and registry use a lot of space and can be rebuilt so minio is fine but the uploads on an external storage provide some security.
Steps to reproduce
Configure global.appConfig.uploads in the helm values and do a deploy, the value will be ignore if minio is not disabled.
Configuration used
global:
appConfig:
uploads:
bucket: gitlab-uploads
connection:
secret: gitlab-rails-storage
key: connection
Current behavior
The minio store is used even though an external store is specified
Expected behavior
The external store is used when explicitly provided, otherwise minio is used.
Versions
- Chart: latest
- Platform:
- Self-hosted: bare metal with kubeadm
- Kubernetes: (
kubectl version
)- Client: 1.14.1
- Server: 1.14.1
- Helm: (
helm version
)- Client: 2.14.0
- Server: 2.14.0
Relevant logs
Looking at https://gitlab.com/charts/gitlab/blob/master/charts/gitlab/templates/_objectStorage.tpl#L19 it seems like in the current chart there is no way to still use minio by default and use and object store only for some, although I might have missed something... Couldn't the if condition simply be swapped to use the external config store if provided and minio otherwise?