--- apiVersion: v1 kind: Namespace metadata: name: registry-ui --- apiVersion: v1 kind: Secret metadata: name: registry-credentials namespace: registry-ui type: Opaque data: username: YXBwX3VzZXI= password: MTIzNDU= --- apiVersion: v1 kind: PersistentVolume metadata: name: registry-ui-pv namespace: registry-ui spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: local-pvs local: path: /home/ansible/k3s/makhiwane/registry-ui nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - lead persistentVolumeReclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-ui-pvc namespace: registry-ui spec: accessModes: - ReadWriteOnce storageClassName: local-pvs resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: registry-ui namespace: registry-ui spec: replicas: 1 selector: matchLabels: app: registry-ui template: metadata: labels: app: registry-ui spec: containers: - name: registry-ui image: joxit/docker-registry-ui:main ports: - containerPort: 80 env: - name: SINGLE_REGISTRY value: "true" - name: REGISTRY_TITLE value: "Docker Registry UI" - name: DELETE_IMAGES value: "true" - name: SHOW_CONTENT_DIGEST value: "true" - name: SHOW_CATALOG_NB_TAGS value: "true" - name: CATALOG_MIN_BRANCHES value: "1" - name: CATALOG_MAX_BRANCHES value: "1" - name: TAGLIST_PAGE_SIZE value: "100" - name: REGISTRY_SECURED value: "false" - name: CATALOG_ELEMENTS_LIMIT value: "1000" - name: NGINX_PROXY_PASS_URL value: "http://registry-server.registry.svc.cluster.local:5000" - name: REGISTRY_AUTH_USER valueFrom: secretKeyRef: name: registry-credentials key: username - name: REGISTRY_AUTH_PASS valueFrom: secretKeyRef: name: registry-credentials key: password volumeMounts: - name: registry-ui-data mountPath: /data resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" volumes: - name: registry-ui-data persistentVolumeClaim: claimName: registry-ui-pvc --- apiVersion: v1 kind: Service metadata: name: registry-ui namespace: registry-ui spec: selector: app: registry-ui ports: - port: 80 targetPort: 80 type: ClusterIP --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: registry-ui-ingress namespace: registry-ui spec: entryPoints: - websecure routes: - match: Host(`registry-ui.apps.mngoma.lab`) kind: Rule services: - name: registry-ui port: 80 tls: {} --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: registry-ui-insecure namespace: registry-ui spec: entryPoints: - web routes: - match: Host(`registry-ui.apps.mngoma.lab`) kind: Rule services: - name: registry-ui port: 80