This chart helps you to deploy and maintain a minio standalone or cluster instances.
To use all features that this charts provides, your K8s cluster must have:
# Resources names prefix, all resources names will starts with <name>-<name_suffix>
name: test
name_suffix: minio
imagePullPolicy: IfNotPresent # all images pull policy
imageTag: RELEASE.2023-10-16T04-13-43Z # tag of minio official image
ingress:
enable: false # when true creates a ingress
# additionalAnnotations: # Set additional nginx controller annotations
# nginx.ingress.kubernetes.io/proxy-body-size: 30m
host: host.com
consoleHost: console.host.com
enable_tls: false # only when true | enables tls and requests a certificate from clusterIssuer
clusterIssuer: letsencrypt-prod
# tlsSecretName: secret-name # set certificate secret name
# cache configurations
cache:
enable: false # if enable will create a new ingress with static cache configurations
pathRegex: /.+\.(css|js|jpg|jpeg|png|gif|ico)
configuration: |
expires 1y;
proxy_cache_bypass $http_x_purge;
proxy_cache static-cache;
proxy_cache_valid 200 168h;
proxy_cache_valid 301 4h;
proxy_cache_valid 302 1h;
proxy_cache_valid 400 401 403 404 30s;
proxy_cache_valid 500 501 502 503 30s;
proxy_cache_valid 429 10s;
proxy_cache_use_stale error timeout invalid_header updating http_429 http_500 http_502 http_503 http_504;
add_header X-Proxy-Cache $upstream_cache_status;
# CREDENTIALS
root_user: root
root_user_pwd: password
# DATABASES
buckets:
- name: static # name of the buckets | for best practice use "_" to separe words
is_public: false
#admin_user: admin # database admin user | the user will be created if doesn't exist
#admin_user_pwd: password # must be setted if admin_user is setted
# RESOURCES
resources:
enable: false
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 200m
memory: 1500Mi
# CLUSTER
cluster:
# please check https://min.io/product/erasure-code-calculator to calculate the number of nodes you want
nodes: 1
# STORAGE
storage:
enable: false
storageClassName: gp2
capacity: 10Gi
Note: All features on a comment is disabled, discomment if you want to enables
We want to deploy a standalone minio instance with one private bucket and 5GB of persistent storage:
The standalone database values:
name: standalone
root_user: standalone_user
root_user_pwd: hjh13yj14g32j4hgj3h
buckets:
- name: tests
admin_user: tests_admin
admin_user_pwd: asdasdasdaasdasdasdasd
cluster:
nodes: 1
storage:
enable: true
storageClassName: storage
capacity: 5Gi
We want to deploy a minio cluster with:
The cluster values:
name: example-cluster
root_user: cluster_user
root_user_pwd: hjh13yj14g32j4hgj3h
buckets:
- name: static_files
is_public: true
admin_user: static_files_admin
admin_user_pwd: asdasdasdaasdasdasdasd
- name: private
admin_user: private_files_admin
admin_user_pwd: asdasdasdaasdasdasdasd
cluster:
nodes: 4
storage:
enable: true
storageClassName: storage
capacity: 8Gi
NB: Use the command “helm template” to see all configurations generated
When you make any changes on the values, the helm chart creates a configuration job that will apply all “Values.buckets” configurations on your instances without restart. If you remove a bucket on “Values.buckets”, the bucket wont be delected on instances, so you need to delete the bucket and admin user manually.