139 lines
3.1 KiB
YAML
139 lines
3.1 KiB
YAML
apiVersion: v1
|
||
kind: Namespace
|
||
metadata:
|
||
name: docker-registry
|
||
spec:
|
||
finalizers:
|
||
- kubernetes
|
||
---
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: docker-registry
|
||
namespace: docker-registry
|
||
#annotations:
|
||
# volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
|
||
spec:
|
||
storageClassName: csi-s3-slow
|
||
accessModes:
|
||
- ReadWriteOnce
|
||
resources:
|
||
requests:
|
||
storage: 20Gi
|
||
|
||
---
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: registry
|
||
labels:
|
||
app: registry
|
||
namespace: docker-registry
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: registry
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: registry
|
||
spec:
|
||
containers:
|
||
- name: registry
|
||
image: registry:2
|
||
imagePullPolicy: Always
|
||
env:
|
||
- name: REGISTRY_HTTP_SECRET
|
||
value: "ThisIsTotallySecret"
|
||
ports:
|
||
- containerPort: 5000
|
||
volumeMounts:
|
||
- mountPath: /var/lib/registry
|
||
name: registry-data
|
||
- mountPath: /etc/docker/registry
|
||
name: config
|
||
volumes:
|
||
- name: registry-data
|
||
persistentVolumeClaim:
|
||
claimName: docker-registry
|
||
- name: config
|
||
configMap:
|
||
defaultMode: 420
|
||
name: docker-registry-config
|
||
---
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: docker-registry-config
|
||
namespace: docker-registry
|
||
labels:
|
||
app: registry
|
||
data:
|
||
config.yml: |-
|
||
version: 0.1
|
||
log:
|
||
fields:
|
||
service: registry
|
||
storage:
|
||
delete:
|
||
enabled: true
|
||
cache:
|
||
blobdescriptor: inmemory
|
||
filesystem:
|
||
rootdirectory: /var/lib/registry
|
||
http:
|
||
addr: :5000
|
||
headers:
|
||
X-Content-Type-Options: [nosniff]
|
||
Access-Control-Allow-Origin: ['*']
|
||
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
|
||
Access-Control-Allow-Headers: ['Authorization', 'Accept']
|
||
Access-Control-Max-Age: [1728000]
|
||
Access-Control-Allow-Credentials: [true]
|
||
Access-Control-Expose-Headers: ['Docker-Content-Digest']
|
||
---
|
||
kind: Service
|
||
apiVersion: v1
|
||
metadata:
|
||
name: registry
|
||
namespace: docker-registry
|
||
spec:
|
||
selector:
|
||
app: registry
|
||
ports:
|
||
- port: 5000
|
||
targetPort: 5000
|
||
---
|
||
apiVersion: v1
|
||
data:
|
||
proxy-connect-timeout: "30"
|
||
proxy-read-timeout: "1801"
|
||
proxy-send-timeout: "1801"
|
||
proxy-body-size: "0"
|
||
client-max-body-size: "0"
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: ingress-nginx-controller
|
||
namespace: ingress-nginx
|
||
---
|
||
apiVersion: networking.k8s.io/v1beta1
|
||
kind: Ingress
|
||
metadata:
|
||
name: docker-registry
|
||
namespace: docker-registry
|
||
#annotations:
|
||
# nginx.ingress.kubernetes.io/proxy‑connect‑timeout: 30
|
||
# nginx.ingress.kubernetes.io/proxy‑read‑timeout: 1800
|
||
# nginx.ingress.kubernetes.io/proxy‑send‑timeout: 1800
|
||
# nginx.ingress.kubernetes.io/proxy-body-size: '5g'
|
||
spec:
|
||
rules:
|
||
- host: docker-registry.lan
|
||
http:
|
||
paths:
|
||
- backend:
|
||
serviceName: registry
|
||
servicePort: 5000
|
||
path: /
|