1
0
forked from k-space/kube

minio-clusters: Clean up ingresses

This commit is contained in:
Lauri Võsandi 2023-08-01 21:11:13 +03:00
parent 79f9704cf5
commit 06de7c53ba
4 changed files with 145 additions and 82 deletions

View File

@ -6,5 +6,5 @@ This namespace houses Minio clusters managed by
To update bump the `image` tag for the classes and issue: To update bump the `image` tag for the classes and issue:
``` ```
kubectl apply -n minio-clusters -f application.yaml kubectl apply -n minio-clusters -f dedicated.yaml -f external.yaml -f shared.yaml
``` ```

View File

@ -0,0 +1,51 @@
---
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

View File

@ -0,0 +1,89 @@
---
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: v1
kind: Service
metadata:
name: external
namespace: minio-clusters
spec:
externalName: 172.20.9.2
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9000
type: ExternalName
---
apiVersion: v1
kind: Service
metadata:
name: external-console
namespace: minio-clusters
spec:
externalName: 172.20.9.2
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9001
type: ExternalName
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: external
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-external.k-space.ee
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: external
port:
name: http
tls:
- hosts:
- "*.k-space.ee"
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: external-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
spec:
rules:
- host: minio-cluster-external-console.k-space.ee
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: external-console
port:
name: http
tls:
- hosts:
- "*.k-space.ee"

View File

@ -1,15 +1,6 @@
--- ---
apiVersion: codemowers.io/v1alpha1 apiVersion: codemowers.io/v1alpha1
kind: ClusterBucketClass 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: metadata:
name: shared name: shared
spec: spec:
@ -60,61 +51,10 @@ spec:
operator: Equal operator: Equal
value: storage 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 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: minio-cluster-shared name: shared
namespace: minio-clusters namespace: minio-clusters
annotations: annotations:
kubernetes.io/ingress.class: traefik kubernetes.io/ingress.class: traefik
@ -130,40 +70,23 @@ spec:
path: "/" path: "/"
backend: backend:
service: service:
name: minio-cluster-shared name: shared
port: port:
name: http name: http
tls: tls:
- hosts: - hosts:
- "*.k-space.ee" - "*.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 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: minio-cluster-shared-console name: shared-console
namespace: minio-clusters namespace: minio-clusters
annotations: annotations:
kubernetes.io/ingress.class: traefik kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true" traefik.ingress.kubernetes.io/router.tls: "true"
external-dns.alpha.kubernetes.io/target: traefik.k-space.ee external-dns.alpha.kubernetes.io/target: traefik.k-space.ee
traefik.ingress.kubernetes.io/router.middlewares: traefik-sso@kubernetescrd
spec: spec:
rules: rules:
- host: minio-cluster-shared-console.k-space.ee - host: minio-cluster-shared-console.k-space.ee
@ -173,7 +96,7 @@ spec:
path: "/" path: "/"
backend: backend:
service: service:
name: minio-cluster-shared-console name: shared-console
port: port:
name: http name: http
tls: tls: