| --- |
| apiVersion: v1 |
| kind: Namespace |
| metadata: |
| name: container-registry |
| --- |
| apiVersion: v1 |
| kind: Service |
| metadata: |
| name: registry |
| namespace: container-registry |
| spec: |
| # NOTE(lekva): We use NodePort type service here so container registry accessible |
| # from every node in the cluster without any extra whitelisting. |
| # It is easy to expose such services on host muchine from local dev environment. |
| type: NodePort |
| selector: |
| app: registry |
| ports: |
| - port: 5000 |
| nodePort: 30500 |
| targetPort: 5000 |
| --- |
| apiVersion: networking.k8s.io/v1 |
| kind: Ingress |
| metadata: |
| name: ingress |
| namespace: container-registry |
| annotations: |
| kubernetes.io/ingress.class: "traefik" |
| spec: |
| rules: |
| - host: "dev-container-registry" |
| http: |
| paths: |
| - pathType: Prefix |
| path: "/" |
| backend: |
| service: |
| name: container-registry |
| port: |
| number: 5000 |
| --- |
| apiVersion: apps/v1 |
| kind: StatefulSet |
| metadata: |
| name: registry |
| namespace: container-registry |
| spec: |
| serviceName: registry |
| selector: |
| matchLabels: |
| app: registry |
| replicas: 1 |
| template: |
| metadata: |
| labels: |
| app: registry |
| spec: |
| containers: |
| - name: registry |
| image: registry:2 |
| imagePullPolicy: IfNotPresent |
| volumeMounts: |
| - name: registry-dir |
| mountPath: /var/lib/registry |
| env: |
| # - name: REGISTRY_REDIRECT_DISABLE |
| # value: "true" |
| # - name: REGISTRY_LOG_LEVEL |
| # value: "debug" |
| # - name: REGISTRY_LOG_ACCESSLOG_DISABLED |
| # value: "false" |
| # - name: REGISTRY_HTTP_RELATIVEURLS |
| # value: "true" |
| # - name: REGISTRY_HTTP_HOST |
| # value: "http://dev-container-registry:8080" |
| - name: REGISTRY_HTTP_ADDR |
| value: 0.0.0.0:5000 |
| ports: |
| - containerPort: 5000 |
| volumes: |
| - name: registry-dir |
| persistentVolumeClaim: |
| claimName: registry-dir |
| volumeClaimTemplates: |
| - metadata: |
| name: registry-dir |
| annotations: |
| volume.alpha.kubernetes.io/storage-class: local-path |
| spec: |
| accessModes: |
| - "ReadWriteOnce" |
| resources: |
| requests: |
| storage: 1Gi |