mirror of
https://github.com/pgsty/minio.git
synced 2026-07-31 07:45:19 +03:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5c6e30d4f1 |
@@ -0,0 +1,110 @@
|
||||
name: Helm Chart
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/helm.yml"
|
||||
- "helm/**"
|
||||
- "helm-releases/minio-*.tgz"
|
||||
- "helm-reindex.sh"
|
||||
- "index.yaml"
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- ".github/workflows/helm.yml"
|
||||
- "helm/**"
|
||||
- "helm-releases/minio-*.tgz"
|
||||
- "helm-reindex.sh"
|
||||
- "index.yaml"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
install-smoke:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
with:
|
||||
version: v3.19.0
|
||||
|
||||
- name: Verify packaged chart
|
||||
run: |
|
||||
set -euo pipefail
|
||||
chart_version="$(awk '$1 == "version:" { print $2; exit }' helm/minio/Chart.yaml)"
|
||||
chart_package="helm-releases/minio-${chart_version}.tgz"
|
||||
test -f "${chart_package}"
|
||||
echo "CHART_PACKAGE=${chart_package}" >> "${GITHUB_ENV}"
|
||||
helm lint --strict "${chart_package}"
|
||||
|
||||
unpacked="$(mktemp -d)"
|
||||
tar -xzf "${chart_package}" -C "${unpacked}"
|
||||
diff -ru --exclude Chart.yaml helm/minio "${unpacked}/minio"
|
||||
|
||||
package_digest="$(sha256sum "${chart_package}" | awk '{ print $1 }')"
|
||||
grep -F "digest: ${package_digest}" index.yaml
|
||||
grep -F "https://raw.githubusercontent.com/pgsty/minio/master/${chart_package}" index.yaml
|
||||
|
||||
- name: Render and verify immutable images
|
||||
run: |
|
||||
set -euo pipefail
|
||||
expected_image='pgsty/minio@sha256:dacff8306a6e0a734518533992dbdcca26bc1ca47f77cf47cb9945725f92b29b'
|
||||
rendered="$(mktemp)"
|
||||
helm template silo "${CHART_PACKAGE}" \
|
||||
--namespace silo \
|
||||
--set mode=standalone \
|
||||
--set persistence.enabled=false > "${rendered}"
|
||||
grep -F "image: \"${expected_image}\"" "${rendered}"
|
||||
if grep -Eq 'image:.*(quay\.io/minio|minio/minio|minio/mc)' "${rendered}"; then
|
||||
echo "Rendered chart still references an upstream MinIO image."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Create Kind cluster
|
||||
uses: helm/kind-action@v1
|
||||
with:
|
||||
version: v0.31.0
|
||||
kubectl_version: v1.35.0
|
||||
node_image: kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f
|
||||
cluster_name: silo-chart
|
||||
wait: 120s
|
||||
|
||||
- name: Install chart
|
||||
run: |
|
||||
set -euo pipefail
|
||||
helm install silo "${CHART_PACKAGE}" \
|
||||
--namespace silo \
|
||||
--create-namespace \
|
||||
--wait \
|
||||
--wait-for-jobs \
|
||||
--timeout 10m \
|
||||
--set mode=standalone \
|
||||
--set replicas=1 \
|
||||
--set persistence.enabled=false \
|
||||
--set resources.requests.memory=512Mi \
|
||||
--set rootUser=siloadmin \
|
||||
--set rootPassword=silo-smoke-password \
|
||||
--set 'buckets[0].name=bootstrap' \
|
||||
--set 'buckets[0].policy=none' \
|
||||
--set 'buckets[0].purge=false'
|
||||
kubectl rollout status deployment/silo-minio --namespace silo --timeout=2m
|
||||
|
||||
- name: Run S3 smoke test
|
||||
run: |
|
||||
set -euo pipefail
|
||||
helm test silo --namespace silo --logs --timeout 5m
|
||||
|
||||
- name: Diagnostics
|
||||
if: failure()
|
||||
run: |
|
||||
helm status silo --namespace silo || true
|
||||
kubectl get all --namespace silo -o wide || true
|
||||
kubectl describe pods --namespace silo || true
|
||||
kubectl logs --namespace silo --all-containers=true --prefix=true --selector release=silo || true
|
||||
@@ -29,3 +29,15 @@ Console: [`georgmangold/console`](https://github.com/georgmangold/console/), a c
|
||||
Ansible Deployment: [https://pigsty.io/docs/minio](https://pigsty.io/docs/minio)
|
||||
|
||||
APT/YUM repo for `minio` and `mcli` binary: [https://pigsty.io/docs/infra](https://pigsty.io/docs/repo/infra/list/#object-storage)
|
||||
|
||||
## Kubernetes delivery and scope
|
||||
|
||||
This repository maintains the direct-deployment Helm chart in [`helm/minio`](helm/minio/README.md) for standalone and distributed Silo server deployments. Chart defaults use the version- and digest-pinned multi-architecture [`pgsty/minio`](https://hub.docker.com/r/pgsty/minio) image, and every chart change is checked by a real Kind install plus an S3 write/read/delete smoke test.
|
||||
|
||||
```bash
|
||||
helm repo add silo https://raw.githubusercontent.com/pgsty/minio/master
|
||||
helm repo update silo
|
||||
helm install my-release silo/minio --namespace minio --create-namespace
|
||||
```
|
||||
|
||||
The MinIO Operator, Tenant CRDs, and operator lifecycle are **not maintained by this repository**. There is no Pigsty/Silo operator fork here. Users who require an operator must select and validate a separate operator implementation; issues and pull requests for operator code should be filed with that implementation.
|
||||
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
helm package helm/minio -d helm-releases/
|
||||
|
||||
helm repo index --merge index.yaml --url https://charts.min.io .
|
||||
helm repo index --merge index.yaml --url https://raw.githubusercontent.com/pgsty/minio/master .
|
||||
|
||||
Binary file not shown.
@@ -1,18 +1,19 @@
|
||||
apiVersion: v1
|
||||
description: High Performance Object Storage
|
||||
description: Silo, a community-maintained MinIO-compatible object store
|
||||
name: minio
|
||||
version: 5.4.0
|
||||
appVersion: RELEASE.2024-12-18T13-15-44Z
|
||||
version: 5.5.0
|
||||
appVersion: RELEASE.2026-06-18T00-00-00Z
|
||||
keywords:
|
||||
- minio
|
||||
- silo
|
||||
- storage
|
||||
- object-storage
|
||||
- s3
|
||||
- cluster
|
||||
home: https://min.io
|
||||
icon: https://min.io/resources/img/logo/MINIO_wordmark.png
|
||||
home: https://silo.pigsty.io
|
||||
icon: https://raw.githubusercontent.com/pgsty/minio/master/.github/logo.svg
|
||||
sources:
|
||||
- https://github.com/minio/minio
|
||||
- https://github.com/pgsty/minio
|
||||
maintainers:
|
||||
- name: MinIO, Inc
|
||||
email: dev@minio.io
|
||||
- name: Pigsty
|
||||
url: https://pigsty.io
|
||||
|
||||
+53
-25
@@ -1,27 +1,42 @@
|
||||
# MinIO Community Helm Chart
|
||||
# Silo Community Helm Chart
|
||||
|
||||
[](https://slack.min.io) [](https://github.com/minio/minio/blob/master/LICENSE)
|
||||
[](https://github.com/pgsty/minio/blob/master/LICENSE)
|
||||
[](https://github.com/pgsty/minio)
|
||||
[](https://hub.docker.com/r/pgsty/minio)
|
||||
|
||||
MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads.
|
||||
Silo is a community-maintained, S3-compatible object store derived from MinIO. This chart deploys the Silo server directly on Kubernetes in standalone or distributed mode.
|
||||
|
||||
| IMPORTANT |
|
||||
| -------------------------- |
|
||||
| This Helm chart is community built, maintained, and supported. MinIO does not guarantee support for any given bug, feature request, or update referencing this chart. <br/><br/> MinIO publishes a separate [MinIO Kubernetes Operator and Tenant Helm Chart](https://github.com/minio/operator/tree/master/helm) that is officially maintained and supported. MinIO strongly recommends using the MinIO Kubernetes Operator for production deployments. See [Deploy Operator With Helm](https://silo.pigsty.io/operations/deployments/k8s-deploy-operator-helm-on-kubernetes.html?ref=github) for additional documentation. |
|
||||
> [!IMPORTANT]
|
||||
> This chart is maintained in [`pgsty/minio`](https://github.com/pgsty/minio). Chart changes are linted, installed into Kind, and verified with an S3 write/read/delete test.
|
||||
>
|
||||
> The MinIO Operator, Tenant CRDs, and operator lifecycle are **not maintained here**. This repository does not provide or plan to provide a Pigsty/Silo operator fork.
|
||||
|
||||
## Pinned images
|
||||
|
||||
The defaults are immutable multi-architecture references for `linux/amd64` and `linux/arm64`:
|
||||
|
||||
| Workload | Repository | Release | Manifest digest |
|
||||
|:---------|:-----------|:--------|:----------------|
|
||||
| Server | `pgsty/minio` | `RELEASE.2026-06-18T00-00-00Z` | `sha256:dacff8306a6e0a734518533992dbdcca26bc1ca47f77cf47cb9945725f92b29b` |
|
||||
| Post-install jobs and tests | `pgsty/minio` | `RELEASE.2026-06-18T00-00-00Z` | `sha256:dacff8306a6e0a734518533992dbdcca26bc1ca47f77cf47cb9945725f92b29b` |
|
||||
|
||||
The Silo image bundles `mcli` and an `mc` compatibility alias. When an image `digest` is set it takes precedence over `tag`. To select another release, update both fields; alternatively set `digest: ""` to use the tag alone.
|
||||
|
||||
## Introduction
|
||||
|
||||
This chart bootstraps MinIO Cluster on [Kubernetes](http://kubernetes.io) using the [Helm](https://helm.sh) package manager.
|
||||
This chart bootstraps a Silo cluster on [Kubernetes](https://kubernetes.io) using the [Helm](https://helm.sh) package manager.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Helm cli with Kubernetes cluster configured.
|
||||
- Helm 3 with a Kubernetes cluster configured.
|
||||
- PV provisioner support in the underlying infrastructure. (We recommend using <https://github.com/minio/direct-csi>)
|
||||
- Use Kubernetes version v1.19 and later for best experience.
|
||||
- Kubernetes v1.25 or later is recommended. The current CI test version is recorded in [the Helm workflow](../../.github/workflows/helm.yml).
|
||||
|
||||
## Configure MinIO Helm repo
|
||||
## Configure the Silo Helm repository
|
||||
|
||||
```bash
|
||||
helm repo add minio https://charts.min.io/
|
||||
helm repo add silo https://raw.githubusercontent.com/pgsty/minio/master
|
||||
helm repo update silo
|
||||
```
|
||||
|
||||
### Installing the Chart
|
||||
@@ -29,7 +44,10 @@ helm repo add minio https://charts.min.io/
|
||||
Install this chart using:
|
||||
|
||||
```bash
|
||||
helm install --namespace minio --set rootUser=rootuser,rootPassword=rootpass123 --generate-name minio/minio
|
||||
helm install my-release silo/minio \
|
||||
--namespace minio \
|
||||
--create-namespace \
|
||||
--set rootUser=rootuser,rootPassword=rootpass123
|
||||
```
|
||||
|
||||
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.
|
||||
@@ -39,7 +57,17 @@ The command deploys MinIO on the Kubernetes cluster in the default configuration
|
||||
Minimal toy setup for testing purposes can be deployed using:
|
||||
|
||||
```bash
|
||||
helm install --set resources.requests.memory=512Mi --set replicas=1 --set persistence.enabled=false --set mode=standalone --set rootUser=rootuser,rootPassword=rootpass123 --generate-name minio/minio
|
||||
helm install my-release silo/minio \
|
||||
--namespace minio \
|
||||
--create-namespace \
|
||||
--set mode=standalone \
|
||||
--set replicas=1 \
|
||||
--set persistence.enabled=false \
|
||||
--set resources.requests.memory=512Mi \
|
||||
--set rootUser=rootuser \
|
||||
--set rootPassword=rootpass123
|
||||
|
||||
helm test my-release --namespace minio --logs
|
||||
```
|
||||
|
||||
### Upgrading the Chart
|
||||
@@ -50,10 +78,10 @@ You can use Helm to update MinIO version in a live release. Assuming your releas
|
||||
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
|
||||
Update `image.tag` and `image.digest` together for the server release. If post-install jobs are enabled, update `mcImage.tag` and `mcImage.digest` to the same tested artifact. Then upgrade the release:
|
||||
|
||||
```bash
|
||||
helm upgrade -f old_values.yaml my-release minio/minio
|
||||
helm upgrade -f old_values.yaml my-release silo/minio
|
||||
```
|
||||
|
||||
Default upgrade strategies are specified in the `values.yaml` file. Update these fields if you'd like to use a different strategy.
|
||||
@@ -65,7 +93,7 @@ Refer the [Values file](./values.yaml) for all the possible config fields.
|
||||
You can specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
helm install --name my-release --set persistence.size=1Ti minio/minio
|
||||
helm install my-release --set persistence.size=1Ti silo/minio
|
||||
```
|
||||
|
||||
The above command deploys MinIO server with a 1Ti backing persistent volume.
|
||||
@@ -73,7 +101,7 @@ The above command deploys MinIO server with a 1Ti backing persistent volume.
|
||||
Alternately, you can provide a YAML file that specifies parameter values while installing the chart. For example,
|
||||
|
||||
```bash
|
||||
helm install --name my-release -f values.yaml minio/minio
|
||||
helm install my-release -f values.yaml silo/minio
|
||||
```
|
||||
|
||||
### Persistence
|
||||
@@ -81,7 +109,7 @@ helm install --name my-release -f values.yaml minio/minio
|
||||
This chart provisions a PersistentVolumeClaim and mounts corresponding persistent volume to default location `/export`. You'll need physical storage available in the Kubernetes cluster for this to work. If you'd rather use `emptyDir`, disable PersistentVolumeClaim by:
|
||||
|
||||
```bash
|
||||
helm install --set persistence.enabled=false minio/minio
|
||||
helm install my-release --set persistence.enabled=false silo/minio
|
||||
```
|
||||
|
||||
> *"An emptyDir volume is first created when a Pod is assigned to a Node, and exists as long as that Pod is running on that node. When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever."*
|
||||
@@ -95,7 +123,7 @@ If a Persistent Volume Claim already exists, specify it during installation.
|
||||
3. Install the chart
|
||||
|
||||
```bash
|
||||
helm install --set persistence.existingClaim=PVC_NAME minio/minio
|
||||
helm install my-release --set persistence.existingClaim=PVC_NAME silo/minio
|
||||
```
|
||||
|
||||
### NetworkPolicy
|
||||
@@ -134,7 +162,7 @@ kubectl create secret generic my-minio-secret --from-literal=rootUser=foobarbaz
|
||||
Then install the chart, specifying that you want to use an existing secret:
|
||||
|
||||
```bash
|
||||
helm install --set existingSecret=my-minio-secret minio/minio
|
||||
helm install my-release --set existingSecret=my-minio-secret silo/minio
|
||||
```
|
||||
|
||||
The following fields are expected in the secret:
|
||||
@@ -157,7 +185,7 @@ kubectl create secret generic tls-ssl-minio --from-file=path/to/private.key --fr
|
||||
Then install the chart, specifying that you want to use the TLS secret:
|
||||
|
||||
```bash
|
||||
helm install --set tls.enabled=true,tls.certSecret=tls-ssl-minio minio/minio
|
||||
helm install my-release --set tls.enabled=true,tls.certSecret=tls-ssl-minio silo/minio
|
||||
```
|
||||
|
||||
### Installing certificates from third party CAs
|
||||
@@ -191,7 +219,7 @@ or
|
||||
Install the chart, specifying the buckets you want to create after install:
|
||||
|
||||
```bash
|
||||
helm install --set buckets[0].name=bucket1,buckets[0].policy=none,buckets[0].purge=false minio/minio
|
||||
helm install my-release --set buckets[0].name=bucket1,buckets[0].policy=none,buckets[0].purge=false silo/minio
|
||||
```
|
||||
|
||||
Description of the configuration parameters used above -
|
||||
@@ -205,7 +233,7 @@ Description of the configuration parameters used above -
|
||||
Install the chart, specifying the policies you want to create after install:
|
||||
|
||||
```bash
|
||||
helm install --set policies[0].name=mypolicy,policies[0].statements[0].resources[0]='arn:aws:s3:::bucket1',policies[0].statements[0].actions[0]='s3:ListBucket',policies[0].statements[0].actions[1]='s3:GetObject' minio/minio
|
||||
helm install my-release --set policies[0].name=mypolicy,policies[0].statements[0].resources[0]='arn:aws:s3:::bucket1',policies[0].statements[0].actions[0]='s3:ListBucket',policies[0].statements[0].actions[1]='s3:GetObject' silo/minio
|
||||
```
|
||||
|
||||
Description of the configuration parameters used above -
|
||||
@@ -220,7 +248,7 @@ Description of the configuration parameters used above -
|
||||
Install the chart, specifying the users you want to create after install:
|
||||
|
||||
```bash
|
||||
helm install --set users[0].accessKey=accessKey,users[0].secretKey=secretKey,users[0].policy=none,users[1].accessKey=accessKey2,users[1].secretRef=existingSecret,users[1].secretKey=password,users[1].policy=none minio/minio
|
||||
helm install my-release --set users[0].accessKey=accessKey,users[0].secretKey=secretKey,users[0].policy=none,users[1].accessKey=accessKey2,users[1].secretRef=existingSecret,users[1].secretKey=password,users[1].policy=none silo/minio
|
||||
```
|
||||
|
||||
Description of the configuration parameters used above -
|
||||
@@ -236,7 +264,7 @@ Description of the configuration parameters used above -
|
||||
Install the chart, specifying the service accounts you want to create after install:
|
||||
|
||||
```bash
|
||||
helm install --set svcaccts[0].accessKey=accessKey,svcaccts[0].secretKey=secretKey,svcaccts[0].user=parentUser,svcaccts[1].accessKey=accessKey2,svcaccts[1].secretRef=existingSecret,svcaccts[1].secretKey=password,svcaccts[1].user=parentUser2 minio/minio
|
||||
helm install my-release --set svcaccts[0].accessKey=accessKey,svcaccts[0].secretKey=secretKey,svcaccts[0].user=parentUser,svcaccts[1].accessKey=accessKey2,svcaccts[1].secretRef=existingSecret,svcaccts[1].secretKey=password,svcaccts[1].user=parentUser2 silo/minio
|
||||
```
|
||||
|
||||
Description of the configuration parameters used above -
|
||||
|
||||
@@ -31,6 +31,28 @@ Create chart name and version as used by the chart label.
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Build the immutable server image reference. Digest takes precedence over tag.
|
||||
*/}}
|
||||
{{- define "minio.image" -}}
|
||||
{{- if .Values.image.digest -}}
|
||||
{{- printf "%s@%s" .Values.image.repository .Values.image.digest -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s:%s" .Values.image.repository .Values.image.tag -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Build the immutable client/job image reference. Digest takes precedence over tag.
|
||||
*/}}
|
||||
{{- define "minio.mcImage" -}}
|
||||
{{- if .Values.mcImage.digest -}}
|
||||
{{- printf "%s@%s" .Values.mcImage.repository .Values.mcImage.digest -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s:%s" .Values.mcImage.repository .Values.mcImage.tag -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for networkpolicy.
|
||||
*/}}
|
||||
|
||||
@@ -62,7 +62,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
image: {{ include "minio.image" . | quote }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
command:
|
||||
- "/bin/sh"
|
||||
|
||||
@@ -88,7 +88,7 @@ spec:
|
||||
{{- if .Values.policies }}
|
||||
initContainers:
|
||||
- name: minio-make-policy
|
||||
image: "{{ .Values.mcImage.repository }}:{{ .Values.mcImage.tag }}"
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
{{- if .Values.makePolicyJob.securityContext.enabled }}
|
||||
{{- with .Values.makePolicyJob.containerSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
@@ -122,7 +122,7 @@ spec:
|
||||
containers:
|
||||
{{- if .Values.buckets }}
|
||||
- name: minio-make-bucket
|
||||
image: "{{ .Values.mcImage.repository }}:{{ .Values.mcImage.tag }}"
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
{{- if .Values.makeBucketJob.securityContext.enabled }}
|
||||
{{- with .Values.makeBucketJob.containerSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
@@ -155,7 +155,7 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.users }}
|
||||
- name: minio-make-user
|
||||
image: "{{ .Values.mcImage.repository }}:{{ .Values.mcImage.tag }}"
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
{{- if .Values.makeUserJob.securityContext.enabled }}
|
||||
{{- with .Values.makeUserJob.containerSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
@@ -188,7 +188,7 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.customCommands }}
|
||||
- name: minio-custom-command
|
||||
image: "{{ .Values.mcImage.repository }}:{{ .Values.mcImage.tag }}"
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
{{- if .Values.customCommandJob.securityContext.enabled }}
|
||||
{{- with .Values.customCommandJob.containerSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
@@ -224,7 +224,7 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.svcaccts }}
|
||||
- name: minio-make-svcacct
|
||||
image: "{{ .Values.mcImage.repository }}:{{ .Values.mcImage.tag }}"
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
{{- if .Values.makeServiceAccountJob.securityContext.enabled }}
|
||||
{{- with .Values.makeServiceAccountJob.containerSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
|
||||
@@ -90,7 +90,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
|
||||
image: {{ include "minio.image" . | quote }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
command: [
|
||||
"/bin/sh",
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
{{- if .Values.tests.enabled }}
|
||||
{{- $scheme := .Values.tls.enabled | ternary "https" "http" }}
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: {{ include "minio.fullname" . }}-test-connection
|
||||
labels:
|
||||
app: {{ include "minio.name" . }}-test
|
||||
release: {{ .Release.Name }}
|
||||
{{ include "minio.name" . }}-client: "true"
|
||||
annotations:
|
||||
"helm.sh/hook": test
|
||||
"helm.sh/hook-delete-policy": before-hook-creation
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
{{- include "minio.imagePullSecrets" . | nindent 2 }}
|
||||
containers:
|
||||
- name: s3-smoke
|
||||
image: {{ include "minio.mcImage" . | quote }}
|
||||
imagePullPolicy: {{ .Values.mcImage.pullPolicy }}
|
||||
command: ["/bin/sh", "-ec"]
|
||||
args:
|
||||
- |
|
||||
alias_name=silo-helm-test
|
||||
bucket_name="silo-helm-test-$(date +%s)"
|
||||
object_name=probe.txt
|
||||
payload="silo helm smoke test"
|
||||
mc alias set "${alias_name}" "{{ $scheme }}://{{ include "minio.fullname" . }}:{{ .Values.service.port }}" "${MINIO_ROOT_USER}" "${MINIO_ROOT_PASSWORD}" {{ if .Values.tls.enabled }}--insecure{{ end }}
|
||||
cleanup() {
|
||||
mc rm --recursive --force "${alias_name}/${bucket_name}" >/dev/null 2>&1 || true
|
||||
mc rb "${alias_name}/${bucket_name}" >/dev/null 2>&1 || true
|
||||
}
|
||||
trap cleanup EXIT
|
||||
mc mb --ignore-existing "${alias_name}/${bucket_name}"
|
||||
printf '%s' "${payload}" | mc pipe "${alias_name}/${bucket_name}/${object_name}"
|
||||
actual="$(mc cat "${alias_name}/${bucket_name}/${object_name}")"
|
||||
test "${actual}" = "${payload}"
|
||||
mc rm "${alias_name}/${bucket_name}/${object_name}"
|
||||
mc rb "${alias_name}/${bucket_name}"
|
||||
trap - EXIT
|
||||
env:
|
||||
- name: MINIO_ROOT_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "minio.secretName" . }}
|
||||
key: rootUser
|
||||
- name: MINIO_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "minio.secretName" . }}
|
||||
key: rootPassword
|
||||
{{- end }}
|
||||
+18
-10
@@ -10,22 +10,26 @@ fullnameOverride: ""
|
||||
##
|
||||
clusterDomain: cluster.local
|
||||
|
||||
## Set default image, imageTag, and imagePullPolicy. mode is used to indicate the
|
||||
## Silo server image. The default is pinned by both release tag and multi-arch
|
||||
## manifest digest. When digest is non-empty it takes precedence over tag.
|
||||
##
|
||||
image:
|
||||
repository: quay.io/minio/minio
|
||||
tag: RELEASE.2024-12-18T13-15-44Z
|
||||
repository: pgsty/minio
|
||||
tag: RELEASE.2026-06-18T00-00-00Z
|
||||
digest: sha256:dacff8306a6e0a734518533992dbdcca26bc1ca47f77cf47cb9945725f92b29b
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
imagePullSecrets: []
|
||||
# - name: "image-pull-secret"
|
||||
|
||||
## Set default image, imageTag, and imagePullPolicy for the `mc` (the minio
|
||||
## client used to create a default bucket).
|
||||
## Image used by post-install jobs and Helm tests. pgsty/minio bundles the
|
||||
## maintained mcli binary and an mc compatibility alias, so these jobs use the
|
||||
## exact same pinned, multi-arch artifact as the server.
|
||||
##
|
||||
mcImage:
|
||||
repository: quay.io/minio/mc
|
||||
tag: RELEASE.2024-11-21T17-21-54Z
|
||||
repository: pgsty/minio
|
||||
tag: RELEASE.2026-06-18T00-00-00Z
|
||||
digest: sha256:dacff8306a6e0a734518533992dbdcca26bc1ca47f77cf47cb9945725f92b29b
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## minio mode, i.e. standalone or distributed
|
||||
@@ -127,13 +131,13 @@ pools: 1
|
||||
## TLS Settings for MinIO
|
||||
tls:
|
||||
enabled: false
|
||||
## Create a secret with private.key and public.crt files and pass that here. Ref: https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
|
||||
## Create a secret with private.key and public.crt files and pass that here. Ref: https://github.com/pgsty/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
|
||||
certSecret: ""
|
||||
publicCrt: public.crt
|
||||
privateKey: private.key
|
||||
|
||||
## Trusted Certificates Settings for MinIO. Ref: https://silo.pigsty.io/operations/network-encryption.html#third-party-certificate-authorities
|
||||
## Bundle multiple trusted certificates into one secret and pass that here. Ref: https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
|
||||
## Bundle multiple trusted certificates into one secret and pass that here. Ref: https://github.com/pgsty/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
|
||||
## When using self-signed certificates, remember to include MinIO's own certificate in the bundle with key public.crt.
|
||||
## If certSecret is left empty and tls is enabled, this chart installs the public certificate from .Values.tls.certSecret.
|
||||
trustedCertsSecret: ""
|
||||
@@ -617,7 +621,11 @@ metrics:
|
||||
# Scrape timeout, for example `scrapeTimeout: 10s`
|
||||
scrapeTimeout: ~
|
||||
|
||||
## ETCD settings: https://github.com/minio/minio/blob/master/docs/sts/etcd.md
|
||||
## Enable the `helm test` S3 write/read/delete smoke test.
|
||||
tests:
|
||||
enabled: true
|
||||
|
||||
## ETCD settings: https://github.com/pgsty/minio/blob/master/docs/sts/etcd.md
|
||||
## Define endpoints to enable this section.
|
||||
etcd:
|
||||
endpoints: []
|
||||
|
||||
+204
-181
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user