FEAT(zot): migrate storage from local PVC to S3 (MinIO)

- Change from StatefulSet to Deployment (no PVC needed)
- Add S3 storageDriver configuration for MinIO backend
- Use minio-s3-credentials secret for AWS credentials
- Remove 50Gi local-path PVC
- Increase memory limit to 256Mi
This commit is contained in:
2026-01-08 17:09:45 +09:00
parent df311073b3
commit cbbd7fc20f

View File

@@ -1,9 +1,10 @@
# Zot Registry using bjw-s/app-template # Zot Registry using bjw-s/app-template
# ARM64 container registry for on-premise CI/CD # ARM64 container registry with S3 (MinIO) storage backend
controllers: controllers:
zot: zot:
type: statefulset type: deployment
replicas: 1
strategy: RollingUpdate strategy: RollingUpdate
containers: containers:
zot: zot:
@@ -11,6 +12,9 @@ controllers:
repository: ghcr.io/project-zot/zot-linux-arm64 repository: ghcr.io/project-zot/zot-linux-arm64
tag: v2.1.13 tag: v2.1.13
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
envFrom:
- secretRef:
name: minio-s3-credentials
probes: probes:
liveness: liveness:
enabled: true enabled: true
@@ -33,7 +37,7 @@ controllers:
cpu: 15m cpu: 15m
memory: 128Mi memory: 128Mi
limits: limits:
memory: 192Mi memory: 256Mi
pod: pod:
tolerations: tolerations:
- key: "node-role.kubernetes.io/master" - key: "node-role.kubernetes.io/master"
@@ -66,13 +70,6 @@ ingress:
- zot0213.kro.kr - zot0213.kro.kr
persistence: persistence:
data:
type: persistentVolumeClaim
accessMode: ReadWriteOnce
size: 50Gi
storageClass: local-path
globalMounts:
- path: /var/lib/registry
config: config:
type: configMap type: configMap
name: zot-config name: zot-config
@@ -94,10 +91,19 @@ configMaps:
config.json: | config.json: |
{ {
"storage": { "storage": {
"rootDirectory": "/var/lib/registry", "rootDirectory": "/tmp/zot",
"dedupe": false,
"gc": true, "gc": true,
"gcDelay": "1h", "gcDelay": "1h",
"gcInterval": "24h" "gcInterval": "24h",
"storageDriver": {
"name": "s3",
"regionendpoint": "http://minio.minio.svc.cluster.local:9000",
"region": "us-east-1",
"bucket": "zot",
"secure": false,
"skipverify": true
}
}, },
"http": { "http": {
"address": "0.0.0.0", "address": "0.0.0.0",