apiVersion: v1
kind: persistentvolume
metadata:
name: repo-pv
labels:
type: prstore
spec:
capacity:
storage: 7gi
volumemode: filesystem
accessmodes:
- readwritemany
persistentvolumereclaimpolicy: retain
storageclassname: local-storage
local:
fstype: ext4
path: /root/repo
nodeaffinity:
required:
nodeselectorterms:
- matchexpressions:
- key: kubernetes.io/hostname
operator: in
values:
- spring
---
apiversion: v1
kind: persistentvolumeclaim
metadata:
name: repo-pvc
labels:
type: prstore
spec:
selector:
matchlabels:
type: prstore
volumemode: filesystem
storageclassname: local-storage
accessmodes:
- readwritemany
resources:
requests:
storage: 7gi
---
apiVersion: v1
kind: Pod
metadata:
name: dockreg-pod
labels:
app: mregistry
spec:
containers:
- name: registry
image: registry:2.7.0
imagePullPolicy: IfNotPresent
volumeMounts:
- name: repo-vol
mountPath: "/var/lib/registry"
- name: certs-vol
mountPath: "/certs"
readOnly: true
- name: auth-vol
mountPath: "/auth"
readOnly: true
env:
- name: REGISTRY_AUTH
value: "htpasswd"
- name: REGISTRY_AUTH_HTPASSWD_REALM
value: "Registry Realm"
- name: REGISTRY_AUTH_HTPASSWD_PATH
value: "/auth/htpasswd"
- name: REGISTRY_HTTP_TLS_CERTIFICATE
value: "/certs/tls.crt"
- name: REGISTRY_HTTP_TLS_KEY
value: "/certs/tls.key"
- name: REGISTRY_STORAGE_DELETE_ENABLED
value: "true"
- name: REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR
value: ""
volumes:
- name: repo-vol
persistentVolumeClaim:
claimName: repo-pvc
- name: certs-vol
secret:
secretName: certs-secret
- name: auth-vol
secret:
secretName: auth-secret
restartPolicy: Always
nodeName: spring
---
apiVersion: v1
kind: Service
metadata:
name: dockreg
spec:
selector:
app: mregistry
ports:
- port: 5000
targetPort: 5000