diff --git a/stable/minio/Chart.yaml b/stable/minio/Chart.yaml index 5db8c2e84b..286404c564 100755 --- a/stable/minio/Chart.yaml +++ b/stable/minio/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v1 -description: Minio is a high performance distributed object storage server, designed for large-scale private cloud infrastructure. +description: MinIO is a high performance distributed object storage server, designed for large-scale private cloud infrastructure. name: minio -version: 2.4.14 -appVersion: RELEASE.2019-04-09T01-22-30Z +version: 2.4.16 +appVersion: RELEASE.2019-05-14T23-57-45Z keywords: - storage - object-storage - S3 -home: https://minio.io +home: https://min.io icon: https://min.io/resources/img/logo/MINIO_wordmark.png sources: - https://github.com/minio/minio diff --git a/stable/minio/README.md b/stable/minio/README.md index 77388c479b..9b904eaa63 100755 --- a/stable/minio/README.md +++ b/stable/minio/README.md @@ -1,20 +1,20 @@ -Minio +MinIO ===== -[Minio](https://minio.io) is a distributed object storage service for high performance, high scale data infrastructures. It is a drop in replacement for AWS S3 in your own environment. It uses erasure coding to provide highly resilient storage that can tolerate failures of upto n/2 nodes. It runs on cloud, container, kubernetes and bare-metal environments. It is simple enough to be deployed in seconds, and can scale to 100s of peta bytes. Minio is suitable for storing objects such as photos, videos, log files, backups, VM and container images. +[MinIO](https://min.io) is a distributed object storage service for high performance, high scale data infrastructures. It is a drop in replacement for AWS S3 in your own environment. It uses erasure coding to provide highly resilient storage that can tolerate failures of upto n/2 nodes. It runs on cloud, container, kubernetes and bare-metal environments. It is simple enough to be deployed in seconds, and can scale to 100s of peta bytes. MinIO is suitable for storing objects such as photos, videos, log files, backups, VM and container images. -Minio supports [distributed mode](https://docs.minio.io/docs/distributed-minio-quickstart-guide). In distributed mode, you can pool multiple drives (even on different machines) into a single object storage server. +MinIO supports [distributed mode](https://docs.minio.io/docs/distributed-minio-quickstart-guide). In distributed mode, you can pool multiple drives (even on different machines) into a single object storage server. Introduction ------------ -This chart bootstraps Minio deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. +This chart bootstraps MinIO deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. Prerequisites ------------- - Kubernetes 1.4+ with Beta APIs enabled for default standalone mode. -- Kubernetes 1.5+ with Beta APIs enabled to run Minio in [distributed mode](#distributed-minio). +- Kubernetes 1.5+ with Beta APIs enabled to run MinIO in [distributed mode](#distributed-minio). - PV provisioner support in the underlying infrastructure. Installing the Chart @@ -26,7 +26,7 @@ Install this chart using: $ helm install stable/minio ``` -The command deploys Minio on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. +The command deploys MinIO on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. ### Release name @@ -45,15 +45,15 @@ $ helm install --set accessKey=myaccesskey,secretKey=mysecretkey \ stable/minio ``` -### Updating Minio configuration via Helm +### Updating MinIO configuration via Helm [ConfigMap](https://kubernetes.io/docs/user-guide/configmap/) allows injecting containers with configuration data even while a Helm release is deployed. -To update your Minio server configuration while it is deployed in a release, you need to +To update your MinIO server configuration while it is deployed in a release, you need to -1. Check all the configurable values in the Minio chart using `helm inspect values stable/minio`. +1. Check all the configurable values in the MinIO chart using `helm inspect values stable/minio`. 2. Override the `minio_server_config` settings in a YAML formatted file, and then pass that file like this `helm upgrade -f config.yaml stable/minio`. -3. Restart the Minio server(s) for the changes to take effect. +3. Restart the MinIO server(s) for the changes to take effect. You can also check the history of upgrades to a release using `helm history my-release`. Replace `my-release` with the actual release name. @@ -71,13 +71,13 @@ The command removes all the Kubernetes components associated with the chart and Upgrading the Chart ------------------- -You can use Helm to update Minio version in a live release. Assuming your release is named as `my-release`, get the values using the command: +You can use Helm to update MinIO version in a live release. Assuming your release is named as `my-release`, get the values using the command: ```bash $ helm get values my-release > old_values.yaml ``` -Then change the field `image.tag` in `old_values.yaml` file with Minio image tag you want to use. Now update the chart using +Then change the field `image.tag` in `old_values.yaml` file with MinIO image tag you want to use. Now update the chart using ```bash $ helm upgrade -f old_values.yaml my-release stable/minio @@ -88,27 +88,27 @@ Default upgrade strategies are specified in the `values.yaml` file. Update these Configuration ------------- -The following table lists the configurable parameters of the Minio chart and their default values. +The following table lists the configurable parameters of the MinIO chart and their default values. | Parameter | Description | Default | |----------------------------|-------------------------------------|---------------------------------------------------------| | `image.repository` | Image repository | `minio/minio` | -| `image.tag` | Minio image tag. Possible values listed [here](https://hub.docker.com/r/minio/minio/tags/).| `RELEASE.2019-04-09T01-22-30Z`| +| `image.tag` | MinIO image tag. Possible values listed [here](https://hub.docker.com/r/minio/minio/tags/).| `RELEASE.2019-05-14T23-57-45Z`| | `image.pullPolicy` | Image pull policy | `IfNotPresent` | | `mcImage.repository` | Client image repository | `minio/mc` | -| `mcImage.tag` | mc image tag. Possible values listed [here](https://hub.docker.com/r/minio/mc/tags/).| `RELEASE.2019-04-03T17-59-57Z`| +| `mcImage.tag` | mc image tag. Possible values listed [here](https://hub.docker.com/r/minio/mc/tags/).| `RELEASE.2019-05-01T23-27-44Z`| | `mcImage.pullPolicy` | mc Image pull policy | `IfNotPresent` | | `ingress.enabled` | Enables Ingress | `false` | | `ingress.annotations` | Ingress annotations | `{}` | | `ingress.hosts` | Ingress accepted hostnames | `[]` | | `ingress.tls` | Ingress TLS configuration | `[]` | -| `mode` | Minio server mode (`standalone` or `distributed`)| `standalone` | -| `replicas` | Number of nodes (applicable only for Minio distributed mode). Should be 4 <= x <= 32 | `4` | +| `mode` | MinIO server mode (`standalone` or `distributed`)| `standalone` | +| `replicas` | Number of nodes (applicable only for MinIO distributed mode). Should be 4 <= x <= 32 | `4` | | `existingSecret` | Name of existing secret with access and secret key.| `""` | | `accessKey` | Default access key (5 to 20 characters) | `AKIAIOSFODNN7EXAMPLE` | | `secretKey` | Default secret key (8 to 40 characters) | `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` | | `configPath` | Default config file location | `~/.minio` | -| `configPathmc` | Default config file location for minio client - mc | `~/.mc` | +| `configPathmc` | Default config file location for MinIO client - mc | `~/.mc` | | `mountPath` | Default mount location for persistent drive| `/export` | | `clusterDomain` | domain name of kubernetes cluster where pod is running.| `cluster.local` | | `service.type` | Kubernetes service type | `ClusterIP` | @@ -127,7 +127,7 @@ The following table lists the configurable parameters of the Minio chart and the | `affinity` | Affinity settings for pod assignment | `{}` | | `tolerations` | Toleration labels for pod assignment | `[]` | | `podAnnotations` | Pod annotations | `{}` | -| `tls.enabled` | Enable TLS for Minio server | `false` | +| `tls.enabled` | Enable TLS for MinIO server | `false` | | `tls.certSecret` | Kubernetes Secret with `public.crt` and `private.key` files. | `""` | | `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `5` | | `livenessProbe.periodSeconds` | How often to perform the probe | `30` | @@ -139,27 +139,27 @@ The following table lists the configurable parameters of the Minio chart and the | `readinessProbe.timeoutSeconds` | When the probe times out | `1` | | `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` | | `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `3` | -| `defaultBucket.enabled` | If set to true, a bucket will be created after minio install | `false` | +| `defaultBucket.enabled` | If set to true, a bucket will be created after MinIO install | `false` | | `defaultBucket.name` | Bucket name | `bucket` | | `defaultBucket.policy` | Bucket policy | `none` | | `defaultBucket.purge` | Purge the bucket if already exists | `false` | -| `buckets` | List of buckets to create after minio install | `[]` | -| `s3gateway.enabled` | Use minio as a [s3 gateway](https://github.com/minio/minio/blob/master/docs/gateway/s3.md)| `false` | +| `buckets` | List of buckets to create after MinIO install | `[]` | +| `s3gateway.enabled` | Use MinIO as a [s3 gateway](https://github.com/minio/minio/blob/master/docs/gateway/s3.md)| `false` | | `s3gateway.replicas` | Number of s3 gateway instances to run in parallel | `4` | | `s3gateway.serviceEndpoint`| Endpoint to the S3 compatible service | `""` | -| `azuregateway.enabled` | Use minio as an [azure gateway](https://docs.minio.io/docs/minio-gateway-for-azure)| `false` | +| `azuregateway.enabled` | Use MinIO as an [azure gateway](https://docs.minio.io/docs/minio-gateway-for-azure)| `false` | | `azuregateway.replicas` | Number of azure gateway instances to run in parallel | `4` | -| `gcsgateway.enabled` | Use minio as a [Google Cloud Storage gateway](https://docs.minio.io/docs/minio-gateway-for-gcs)| `false` | +| `gcsgateway.enabled` | Use MinIO as a [Google Cloud Storage gateway](https://docs.minio.io/docs/minio-gateway-for-gcs)| `false` | | `gcsgateway.gcsKeyJson` | credential json file of service account key | `""` | | `gcsgateway.projectId` | Google cloud project id | `""` | -| `ossgateway.enabled` | Use minio as an [Alibaba Cloud Object Storage Service gateway](https://github.com/minio/minio/blob/master/docs/gateway/oss.md)| `false` | +| `ossgateway.enabled` | Use MinIO as an [Alibaba Cloud Object Storage Service gateway](https://github.com/minio/minio/blob/master/docs/gateway/oss.md)| `false` | | `ossgateway.replicas` | Number of oss gateway instances to run in parallel | `4` | | `ossgateway.endpointURL` | OSS server endpoint. | `""` | -| `nasgateway.enabled` | Use minio as a [NAS gateway](https://docs.minio.io/docs/minio-gateway-for-nas) | `false` | +| `nasgateway.enabled` | Use MinIO as a [NAS gateway](https://docs.MinIO.io/docs/minio-gateway-for-nas) | `false` | | `nasgateway.replicas` | Number of NAS gateway instances to be run in parallel on a PV | `4` | -| `environment` | Set Minio server relevant environment variables in `values.yaml` file. Minio containers will be passed these variables when they start. | `MINIO_BROWSER: "on"` | +| `environment` | Set MinIO server relevant environment variables in `values.yaml` file. MinIO containers will be passed these variables when they start. | `MINIO_BROWSER: "on"` | -Some of the parameters above map to the env variables defined in the [Minio DockerHub image](https://hub.docker.com/r/minio/minio/). +Some of the parameters above map to the env variables defined in the [MinIO DockerHub image](https://hub.docker.com/r/minio/minio/). You can specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, @@ -169,7 +169,7 @@ $ helm install --name my-release \ stable/minio ``` -The above command deploys Minio server with a 100Gi backing persistent volume. +The above command deploys MinIO server with a 100Gi backing persistent volume. Alternately, you can provide a YAML file that specifies parameter values while installing the chart. For example, @@ -179,51 +179,51 @@ $ helm install --name my-release -f values.yaml stable/minio > **Tip**: You can use the default [values.yaml](values.yaml) -Distributed Minio +Distributed MinIO ----------- -This chart provisions a Minio server in standalone mode, by default. To provision Minio server in [distributed mode](https://docs.minio.io/docs/distributed-minio-quickstart-guide), set the `mode` field to `distributed`, +This chart provisions a MinIO server in standalone mode, by default. To provision MinIO server in [distributed mode](https://docs.minio.io/docs/distributed-minio-quickstart-guide), set the `mode` field to `distributed`, ```bash $ helm install --set mode=distributed stable/minio ``` -This provisions Minio server in distributed mode with 4 nodes. To change the number of nodes in your distributed Minio server, set the `replicas` field, +This provisions MinIO server in distributed mode with 4 nodes. To change the number of nodes in your distributed MinIO server, set the `replicas` field, ```bash $ helm install --set mode=distributed,replicas=8 stable/minio ``` -This provisions Minio server in distributed mode with 8 nodes. Note that the `replicas` value should be an integer between 4 and 16 (inclusive). +This provisions MinIO server in distributed mode with 8 nodes. Note that the `replicas` value should be an integer between 4 and 16 (inclusive). -### StatefulSet [limitations](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/#limitations) applicable to distributed Minio +### StatefulSet [limitations](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/#limitations) applicable to distributed MinIO 1. StatefulSets need persistent storage, so the `persistence.enabled` flag is ignored when `mode` is set to `distributed`. -2. When uninstalling a distributed Minio release, you'll need to manually delete volumes associated with the StatefulSet. +2. When uninstalling a distributed MinIO release, you'll need to manually delete volumes associated with the StatefulSet. NAS Gateway ----------- ### Prerequisites -Minio in [NAS gateway mode](https://docs.minio.io/docs/minio-gateway-for-nas) can be used to create multiple Minio instances backed by single PV in `ReadWriteMany` mode. Currently few [Kubernetes volume plugins](https://kubernetes.io/docs/user-guide/persistent-volumes/#access-modes) support `ReadWriteMany` mode. To deploy Minio NAS gateway with Helm chart you'll need to have a Persistent Volume running with one of the supported volume plugins. [This document](https://kubernetes.io/docs/user-guide/volumes/#nfs) +MinIO in [NAS gateway mode](https://docs.minio.io/docs/minio-gateway-for-nas) can be used to create multiple MinIO instances backed by single PV in `ReadWriteMany` mode. Currently few [Kubernetes volume plugins](https://kubernetes.io/docs/user-guide/persistent-volumes/#access-modes) support `ReadWriteMany` mode. To deploy MinIO NAS gateway with Helm chart you'll need to have a Persistent Volume running with one of the supported volume plugins. [This document](https://kubernetes.io/docs/user-guide/volumes/#nfs) outlines steps to create a NFS PV in Kubernetes cluster. -### Provision NAS Gateway Minio instances +### Provision NAS Gateway MinIO instances -To provision Minio servers in [NAS gateway mode](https://docs.minio.io/docs/minio-gateway-for-nas), set the `nasgateway.enabled` field to `true`, +To provision MinIO servers in [NAS gateway mode](https://docs.minio.io/docs/minio-gateway-for-nas), set the `nasgateway.enabled` field to `true`, ```bash $ helm install --set nasgateway.enabled=true stable/minio ``` -This provisions 4 Minio NAS gateway instances backed by single storage. To change the number of instances in your Minio deployment, set the `replicas` field, +This provisions 4 MinIO NAS gateway instances backed by single storage. To change the number of instances in your MinIO deployment, set the `replicas` field, ```bash $ helm install --set nasgateway.enabled=true,nasgateway.replicas=8 stable/minio ``` -This provisions Minio NAS gateway with 8 instances. +This provisions MinIO NAS gateway with 8 instances. Persistence ----------- @@ -252,7 +252,7 @@ $ helm install --set persistence.existingClaim=PVC_NAME stable/minio NetworkPolicy ------------- -To enable network policy for Minio, +To enable network policy for MinIO, install [a networking plugin that implements the Kubernetes NetworkPolicy spec](https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy#before-you-begin), and set `networkPolicy.enabled` to `true`. @@ -265,7 +265,7 @@ the DefaultDeny namespace annotation. Note: this will enforce policy for _all_ p With NetworkPolicy enabled, traffic will be limited to just port 9000. For more precise policy, set `networkPolicy.allowExternal=true`. This will -only allow pods with the generated client label to connect to Minio. +only allow pods with the generated client label to connect to MinIO. This label will be displayed in the output of a successful install. Existing secret @@ -292,7 +292,7 @@ The following fields are expected in the secret Configure TLS ------------- -To enable TLS for Minio containers, acquire TLS certificates from a CA or create self-signed certificates. While creating / acquiring certificates ensure the corresponding domain names are set as per the standard [DNS naming conventions](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-identity) in a Kubernetes StatefulSet (for a distributed Minio setup). Then create a secret using +To enable TLS for MinIO containers, acquire TLS certificates from a CA or create self-signed certificates. While creating / acquiring certificates ensure the corresponding domain names are set as per the standard [DNS naming conventions](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-identity) in a Kubernetes StatefulSet (for a distributed MinIO setup). Then create a secret using ```bash $ kubectl create secret generic tls-ssl-minio --from-file=path/to/private.key --from-file=path/to/public.crt @@ -304,10 +304,10 @@ Then install the chart, specifying that you want to use the TLS secret: $ helm install --set tls.enabled=true,tls.certSecret=tls-ssl-minio stable/minio ``` -Pass environment variables to Minio containers +Pass environment variables to MinIO containers ---------------------------------------------- -To pass environment variables to Minio containers when deploying via Helm chart, use the below command line format +To pass environment variables to MinIO containers when deploying via Helm chart, use the below command line format ```bash $ helm install --set environment.MINIO_BROWSER=on,environment.MINIO_DOMAIN=domain-name stable/minio diff --git a/stable/minio/values.yaml b/stable/minio/values.yaml index 2eb41bdd5c..e23df7e64c 100755 --- a/stable/minio/values.yaml +++ b/stable/minio/values.yaml @@ -6,7 +6,7 @@ clusterDomain: cluster.local ## image: repository: minio/minio - tag: RELEASE.2019-04-09T01-22-30Z + tag: RELEASE.2019-05-14T23-57-45Z pullPolicy: IfNotPresent ## Set default image, imageTag, and imagePullPolicy for the `mc` (the minio @@ -14,7 +14,7 @@ image: ## mcImage: repository: minio/mc - tag: RELEASE.2019-04-03T17-59-57Z + tag: RELEASE.2019-05-01T23-27-44Z pullPolicy: IfNotPresent ## minio server mode, i.e. standalone or distributed. @@ -104,11 +104,19 @@ service: # prometheus.io/path: '/minio/prometheus/metrics' # prometheus.io/port: '9000' +## Configure Ingress based on the documentation here: https://kubernetes.io/docs/concepts/services-networking/ingress/ +## + ingress: enabled: false annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" + # kubernetes.io/ingress.allow-http: "false" + # kubernetes.io/ingress.global-static-ip-name: "" + # nginx.ingress.kubernetes.io/secure-backends: "true" + # nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + # nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0 path: / hosts: - chart-example.local