From a8bf83f9e593e487f319e7201d188c67d882add9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauri=20V=C3=B5sandi?= Date: Thu, 2 Mar 2023 08:46:05 +0200 Subject: [PATCH] Add minio-clusters namespace --- minio-clusters/README.md | 10 ++ minio-clusters/application.yaml | 181 ++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 minio-clusters/README.md create mode 100644 minio-clusters/application.yaml diff --git a/minio-clusters/README.md b/minio-clusters/README.md new file mode 100644 index 0000000..e19e93f --- /dev/null +++ b/minio-clusters/README.md @@ -0,0 +1,10 @@ +# minio-clusters + +This namespace houses Minio clusters managed by +[Codemowers' Operator Bundle](https://github.com/codemowers/operator-bundle) + +To update bump the `image` tag for the classes and issue: + +``` +kubectl apply -n minio-clusters -f application.yaml +``` diff --git a/minio-clusters/application.yaml b/minio-clusters/application.yaml new file mode 100644 index 0000000..753ec5b --- /dev/null +++ b/minio-clusters/application.yaml @@ -0,0 +1,181 @@ +--- +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"