titan-iac/services/zot/deployment.yaml

55 lines
1.5 KiB
YAML

# services/zot/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: zot
namespace: zot
labels: { app: zot }
spec:
replicas: 1
selector:
matchLabels: { app: zot }
template:
metadata:
labels: { app: zot }
spec:
nodeSelector:
node-role.kubernetes.io/worker: "true"
containers:
- name: zot
image: ghcr.io/project-zot/zot-linux-arm64:latest
args: ["serve", "/etc/zot/config.json"]
ports:
- { name: http, containerPort: 5000 }
volumeMounts:
- name: cfg
mountPath: /etc/zot/config.json
subPath: config.json
readOnly: true
- name: htpasswd
mountPath: /etc/zot/htpasswd
subPath: htpasswd
readOnly: true
- name: zot-data
mountPath: /var/lib/registry
readinessProbe:
httpGet: { path: /v2/, port: http }
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet: { path: /v2/, port: http }
initialDelaySeconds: 15
periodSeconds: 20
resources:
requests: { cpu: "50m", memory: "64Mi" }
volumes:
- name: cfg
configMap:
name: zot-config
- name: htpasswd
secret:
secretName: zot-htpasswd
- name: zot-data
persistentVolumeClaim:
claimName: zot-data