apiVersion: v1 kind: Namespace metadata: name: db-registry --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-pvc namespace: db-registry spec: storageClassName: longhorn accessModes: - ReadWriteOnce resources: requests: storage: %s --- apiVersion: apps/v1 kind: Deployment metadata: name: registry namespace: db-registry spec: replicas: 1 selector: matchLabels: app: registry template: metadata: labels: app: registry spec: containers: - name: registry image: docker.io/library/registry:2.8.3 ports: - containerPort: 5000 volumeMounts: - name: data mountPath: /var/lib/registry volumes: - name: data persistentVolumeClaim: claimName: registry-pvc --- apiVersion: v1 kind: Service metadata: name: registry namespace: db-registry spec: clusterIP: 10.96.123.45 type: NodePort selector: app: registry ports: - port: 80 targetPort: 5000 nodePort: 30500 --- apiVersion: apps/v1 kind: Deployment metadata: name: registry-ui namespace: db-registry spec: replicas: 1 selector: matchLabels: app: registry-ui template: metadata: labels: app: registry-ui spec: containers: - name: registry image: docker.io/quiq/registry-ui:0.11.0 env: - name: REGISTRY_HOSTNAME value: "registry:80" - name: REGISTRY_INSECURE value: "true" ports: - containerPort: 8000 --- apiVersion: v1 kind: Service metadata: name: registry-ui namespace: db-registry spec: type: ClusterIP selector: app: registry-ui ports: - port: 80 targetPort: 8000