Я хочу создать развертывание для Pod с uid / gid = 500. Это развертывание также создает том для этого контейнера. Манифест развертывания выглядит так:
kind: PersistentVolume
apiVersion: v1
metadata:
name: test
labels:
type: local
namespace: scc-test
spec:
storageClassName: manual
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/local/test/"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-claim
namespace: scc-test
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: test-pod
labels:
application: test
namespace: scc-test
spec:
replicas: 1
selector:
matchLabels:
application: ads
template:
metadata:
namespace: scc-test
spec:
securityContext:
runAsUser: 500
runAsGroup: 500
fsGroup: 500
containers:
- name: test-pod
image: docker.io/hello-world
securityContext:
privileged: true
volumeMounts:
- name: test-vol
mountPath: /opt/test/
volumes:
- name: test-vol
persistentVolumeClaim:
claimName: test-claim
restartPolicy: Always
nodeSelector:
site: test-1
Этот манифест работает, и я могу развернуть модуль, но в каталоге на хосте /local/test
есть uid / gid = 0.
Я также создал custom s cc для проекта:
kind: SecurityContextConstraints
apiVersion: v1
metadata:
name: test-scc
allowPrivilegedContainer: true
runAsUser:
type: MustRunAs
uid: 500
seLinuxContext:
type: RunAsAny
fsGroup:
type: MustRunAs
ranges:
- min: 500
max: 500
supplementalGroups:
type: MustRunAs
ranges:
- min: 500
max: 500
а также прикрепил его к проекту: oc adm policy add-scc-to-user test-scc -z default
Чего не хватает? Как получить каталог /local/test
с uid / gid = 500. Я могу изменить разрешения с помощью InitContainer, но мне нужно решение s cc. Спасибо