MinIO
S3-compatible object storage with TLS and optional OpenID Connect integration.
Prerequisites
Create a secret with admin credentials:
kubectl apply -f - <<EOF
---
apiVersion: v1
kind: Secret
metadata:
name: minio
namespace: flux-system
type: Opaque
stringData:
MINIO_ADMIN_USER: "your-username"
MINIO_ADMIN_PASSWORD: "your-password" # pragma: allowlist secret
EOF
Optionally create a minio-env-config ConfigMap in the MinIO namespace for OpenID Connect integration with Keycloak.
Deployment
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: flux-apps
namespace: flux-system
spec:
interval: 1m0s
ref:
tag: v1.0.0
url: https://github.com/stuttgart-things/flux.git
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: minio
namespace: flux-system
spec:
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-apps
path: ./apps/minio
prune: true
wait: true
postBuild:
substitute:
MINIO_NAMESPACE: minio
MINIO_VERSION: "16.0.10"
MINIO_REGISTRY: ghcr.io
MINIO_REPOSITORY: stuttgart-things/minio
MINIO_IMAGE_TAG: RELEASE.2024-06-11T00-09-59Z
INGRESS_HOSTNAME_API: artifacts
INGRESS_HOSTNAME_CONSOLE: artifacts-console
INGRESS_DOMAIN: example.sthings-vsphere.labul.sva.de
STORAGE_CLASS: nfs4-csi
CLUSTER_ISSUER: cluster-issuer-approle
EXTRA_CONFIG_MAP: minio-env-config
substituteFrom:
- kind: Secret
name: minio
Variables
| Variable | Default | Description |
|---|---|---|
MINIO_NAMESPACE |
minio |
Target namespace |
MINIO_VERSION |
16.0.10 |
Helm chart version |
MINIO_REGISTRY |
ghcr.io |
Container image registry |
MINIO_REPOSITORY |
stuttgart-things/minio |
Container image repository |
MINIO_IMAGE_TAG |
RELEASE.2024-06-11T00-09-59Z |
Container image tag |
MINIO_ADMIN_USER |
(required, from secret) | Admin username |
MINIO_ADMIN_PASSWORD |
(required, from secret) | Admin password |
INGRESS_HOSTNAME_API |
(required) | API ingress hostname |
INGRESS_HOSTNAME_CONSOLE |
(required) | Console ingress hostname |
INGRESS_DOMAIN |
(required) | Ingress domain suffix |
STORAGE_CLASS |
longhorn |
StorageClass for persistence |
CLUSTER_ISSUER |
(required) | cert-manager ClusterIssuer name |
Notes
- Uses OCI HelmRepository from
oci://ghcr.io/stuttgart-things - Includes a
pre-release.yamlfor TLS certificate viasthings-clusterhelper chart minio-deploymentdepends onminio-certificate-configuration