--- apiVersion: codemowers.io/v1alpha1 kind: ClusterBucketClass metadata: name: external spec: description: "Minio instance running on the ZFS storage box" targetNamespace: minio-clusters targetCluster: external --- apiVersion: codemowers.io/v1alpha1 kind: ClusterBucketClass metadata: name: shared spec: description: "Shared Minio cluster" targetNamespace: minio-clusters targetCluster: shared storageClass: minio replicas: 4 podSpec: containers: - name: minio env: - name: MINIO_PROMETHEUS_AUTH_TYPE value: public image: minio/minio:RELEASE.2023-02-17T17-52-43Z args: - server - --address - 0.0.0.0:9000 - --console-address - 0.0.0.0:9001 ports: - containerPort: 9000 name: http - containerPort: 9001 name: console readinessProbe: httpGet: path: /minio/health/ready port: 9000 initialDelaySeconds: 2 periodSeconds: 5 resources: requests: cpu: 300m memory: 1Gi limits: cpu: 4000m memory: 2Gi volumeMounts: - name: data mountPath: /data nodeSelector: dedicated: storage tolerations: - effect: NoSchedule key: dedicated operator: Equal value: storage --- apiVersion: codemowers.io/v1alpha1 kind: ClusterBucketClass metadata: name: dedicated spec: targetNamespace: minio-clusters description: "Dedicated Minio clusters" replicas: 4 storageClass: minio podSpec: containers: - name: minio env: - name: MINIO_PROMETHEUS_AUTH_TYPE value: public image: minio/minio:RELEASE.2023-02-17T17-52-43Z args: - server - --address - 0.0.0.0:9000 - --console-address - 0.0.0.0:9001 ports: - containerPort: 9000 name: http - containerPort: 9001 name: console readinessProbe: httpGet: path: /minio/health/ready port: 9000 initialDelaySeconds: 2 periodSeconds: 5 resources: requests: cpu: 300m memory: 1Gi limits: cpu: 4000m memory: 2Gi volumeMounts: - name: data mountPath: /data nodeSelector: dedicated: storage tolerations: - effect: NoSchedule key: dedicated operator: Equal value: storage --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minio-cluster-shared namespace: minio-clusters annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" external-dns.alpha.kubernetes.io/target: traefik.k-space.ee spec: rules: - host: minio-cluster-shared.k-space.ee http: paths: - pathType: Prefix path: "/" backend: service: name: minio-cluster-shared port: name: http tls: - hosts: - "*.k-space.ee" --- apiVersion: v1 kind: Service metadata: name: minio-cluster-shared-console namespace: minio-clusters spec: ports: - name: http protocol: TCP port: 80 targetPort: 9001 selector: app.kubernetes.io/instance: shared app.kubernetes.io/name: minio clusterIP: None --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minio-cluster-shared-console namespace: minio-clusters annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" external-dns.alpha.kubernetes.io/target: traefik.k-space.ee traefik.ingress.kubernetes.io/router.middlewares: traefik-sso@kubernetescrd spec: rules: - host: minio-cluster-shared-console.k-space.ee http: paths: - pathType: Prefix path: "/" backend: service: name: minio-cluster-shared-console port: name: http tls: - hosts: - "*.k-space.ee"