apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-registry
  namespace: kube-system
  labels:
    k8s-app: kube-registry
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 3
  selector:
    matchLabels:
      k8s-app: kube-registry
  template:
    metadata:
      labels:
        k8s-app: kube-registry
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
        - name: registry
          image: registry:2
          imagePullPolicy: Always
          resources:
            limits:
              cpu: 100m
              memory: 100Mi
          env:
            # Configuration reference: https://docs.docker.com/registry/configuration/
            - name: REGISTRY_HTTP_ADDR
              value: :5000
            - name: REGISTRY_HTTP_SECRET
              value: "Ple4seCh4ngeThisN0tAVerySecretV4lue"
            - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
              value: /var/lib/registry
          volumeMounts:
            - name: image-store
              mountPath: /var/lib/registry
          ports:
            - containerPort: 5000
              name: registry
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: registry
          readinessProbe:
            httpGet:
              path: /
              port: registry
      volumes:
        - name: image-store
          flexVolume:
            driver: ceph.rook.io/rook
            fsType: ceph
            options:
              fsName: myfs # name of the filesystem specified in the filesystem CRD.
              clusterNamespace: rook-ceph # namespace where the Rook cluster is deployed
              # by default the path is /, but you can override and mount a specific path of the filesystem by using the path attribute
              # the path must exist on the filesystem, otherwise mounting the filesystem at that path will fail
              # path: /some/path/inside/cephfs
              # (Optional) Specify an existing Ceph user that will be used for mounting storage with this StorageClass.
              #mountUser: user1
              # (Optional) Specify an existing Kubernetes secret name containing just one key holding the Ceph user secret.
              # The secret must exist in each namespace(s) where the storage will be consumed.
              #mountSecret: ceph-user1-secret
