Gitlab 需要擁有/etc/gitlab的讀寫權限,但是其中的/etc/gitlab/gitlab.rb又希望存儲到kubernetes的configmp中;也就是說,需要給gitlab docker鏡像掛在一個/etc/gitlab 的volume,但是又需要在/etc/gitlab上掛在一個/etc/gitlab/gitlab.rb文件;只能使用subpath;
apiVersion: apps/v1beta2
kind: Deployment
metadata:
namespace: ci
name: gitlab
spec:
selector:
matchLabels:
app: gitlab
replicas: 1
template:
metadata:
labels:
app: gitlab
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: gitlab
- name: etc
persistentVolumeClaim:
claimName: gitlab-etc
- name: gitlab-rb
configMap:
name: gitlab
items:
- key: gitlab.rb
path: etc/gitlab/gitlab.rb
containers:
- name: gitlab
image: gitlab/gitlab-ce:11.0.4-ce.0
ports:
- name: https
containerPort: 443
- name: http
containerPort: 80
- name: ssh
containerPort: 22
volumeMounts:
- name: etc
mountPath: /etc/gitlab
- name: gitlab-rb
mountPath: /etc/gitlab/gitlab.rb
subPath: etc/gitlab/gitlab.rb
- name: data
mountPath: /var/opt/gitlab
kubernetes-subpath用法(把文件掛載在已存在的目錄下,不覆蓋原目錄)
kubernetes的configMap文件掛載不同的路徑且不覆蓋目錄的解決方法
kubernetes筆記: subpath