Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: minio/operator
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0b806725001a0cd95e47225c76692b282a44b699
Choose a base ref
..
head repository: minio/operator
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8ab6bf0619aebaf1ebf4f7f4ceadf405f92cf914
Choose a head ref
Showing 1,826 changed files with 14,501 additions and 639,134 deletions.
11 changes: 4 additions & 7 deletions .github/workflows/goreleaser.yml
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ name: goreleaser

on:
pull_request:
types: [opened, reopened, synchronize]
types: [ opened, reopened, synchronize ]
branches:
- 'release*'
- 'master'
@@ -17,16 +17,13 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21.x
go-version: 1.22.x
- # Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up swagger
run: |
go install github.com/go-swagger/go-swagger/cmd/swagger@latest
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
@@ -41,7 +38,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21.x
go-version: 1.22.x
workdir: sidecar
- # Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
@@ -54,4 +51,4 @@ jobs:
with:
version: latest
workdir: sidecar
args: release --skip=publish --clean --snapshot
args: release --skip=publish --clean --snapshot
100 changes: 78 additions & 22 deletions .github/workflows/kubernetes-tests.yml
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
@@ -32,7 +32,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -48,7 +48,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -65,7 +65,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -85,11 +85,10 @@ jobs:
runs-on: ${{ matrix.os }}
needs:
- lint
- vulnerable-dependencies-checks
- govet
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -105,7 +104,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -122,7 +121,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -140,7 +139,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -161,11 +160,10 @@ jobs:
runs-on: ${{ matrix.os }}
needs:
- lint-sidecar
- vulnerable-dependencies-checks-sidecar
- govet-sidecar
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -182,12 +180,11 @@ jobs:
runs-on: ${{ matrix.os }}
needs:
- lint
- vulnerable-dependencies-checks
- govet
- shellcheck
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -209,11 +206,10 @@ jobs:
runs-on: ${{ matrix.os }}
needs:
- lint-sidecar
- vulnerable-dependencies-checks-sidecar
- govet-sidecar
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -239,7 +235,7 @@ jobs:
- sidecar
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -269,7 +265,7 @@ jobs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -292,14 +288,74 @@ jobs:
- name: Tenant upgrade test on Kind
run: |
"${GITHUB_WORKSPACE}/testing/deploy-tenant-upgrade.sh"
# test-kes:
# timeout-minutes: 30
# runs-on: ${{ matrix.os }}
# needs:
# - operator
# strategy:
# matrix:
# go-version: [ 1.22.x ]
# os: [ ubuntu-latest ]
#
# steps:
# - uses: actions/checkout@v3
# - uses: actions/setup-go@v4
# with:
# go-version: ${{ matrix.go-version }}
# - uses: actions/cache@v3
# name: Operator Binary Cache
# with:
# path: |
# ./minio-operator
# key: ${{ runner.os }}-binary-${{ github.run_id }}
# - uses: actions/cache@v3
# name: Operator Sidecar Binary Cache
# with:
# path: |
# ./sidecar/minio-operator-sidecar
# key: ${{ runner.os }}-sidecar-binary-${{ github.run_id }}
# - name: Tenant KES
# run: |
# "${GITHUB_WORKSPACE}/testing/console-tenant+kes.sh"
test-tenant-hotfix-update:
timeout-minutes: 30
runs-on: ${{ matrix.os }}
needs:
- operator
strategy:
matrix:
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- uses: actions/cache@v3
name: Operator Binary Cache
with:
path: |
./minio-operator
key: ${{ runner.os }}-binary-${{ github.run_id }}
- uses: actions/cache@v3
name: Operator Sidecar Binary Cache
with:
path: |
./sidecar/minio-operator-sidecar
key: ${{ runner.os }}-sidecar-binary-${{ github.run_id }}
- name: Tenant upgrade to hotfix version
run: |
"${GITHUB_WORKSPACE}/testing/tenant-hotfix-update.sh" "quay.io/minio/minio:RELEASE.2024-02-04T22-36-13Z" "quay.io/minio/minio:RELEASE.2024-02-04T22-36-13Z.hotfix.c40028f8f"
test-kes:
timeout-minutes: 30
runs-on: ${{ matrix.os }}
needs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

steps:
@@ -329,7 +385,7 @@ jobs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]
steps:
- uses: actions/checkout@v3
@@ -358,7 +414,7 @@ jobs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]
steps:
- name: Free Disk Space (Ubuntu)
@@ -398,7 +454,7 @@ jobs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

# Steps represent a sequence of tasks that will be executed as part of the job
@@ -435,7 +491,7 @@ jobs:
- operator
strategy:
matrix:
go-version: [ 1.21.x ]
go-version: [ 1.22.x ]
os: [ ubuntu-latest ]

# Steps represent a sequence of tasks that will be executed as part of the job
458 changes: 0 additions & 458 deletions .github/workflows/ui.yaml

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -19,3 +19,4 @@ examples/**/obj/
public.crt
go_build_operator_
operator.iml
.run/
1 change: 0 additions & 1 deletion .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@ release:
before:
hooks:
- make clean
- make swagger-gen
- go mod tidy -compat=1.21.8
- go mod download

35 changes: 0 additions & 35 deletions .semgrepignore

This file was deleted.

5,599 changes: 3,644 additions & 1,955 deletions CREDITS

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Development

## Deploy operator in K8s

With a Kubernetes cluster (local you can use Kind) in `./` run:

```
kubectl apply -k resources/
kubectl apply -k resources/base/
```

That will deploy an operator with a defined image.

## Deploy operator in K8s with custom image using Kind:

Build an image like:

```
make build TAG="minio/operator:<YOUR_TAG>" && kind load docker-image minio/operator:<YOUR_TAG>
```

And then use your `TAG` in the `minio-operator` deployment.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ LABEL name="MinIO" \
maintainer="MinIO Inc <dev@min.io>" \
version="${TAG}" \
release="${TAG}" \
summary="MinIO Operator brings native support for MinIO, Console, and Encryption to Kubernetes." \
summary="MinIO Operator brings native support for MinIO and Encryption to Kubernetes." \
description="MinIO object storage is fundamentally different. Designed for performance and the S3 API, it is 100% open-source. MinIO is ideal for large, private cloud environments with stringent security requirements and delivers mission-critical availability across a diverse range of workloads."

# On RHEL the certificate bundle is located at:
87 changes: 3 additions & 84 deletions Makefile
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ getdeps:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2 && \
echo "Installing govulncheck" && \
go install golang.org/x/vuln/cmd/govulncheck@latest &&\
echo "installng gopls" && \
echo "installing gopls" && \
go install golang.org/x/tools/gopls@latest

verify: getdeps govet lint
@@ -81,98 +81,17 @@ regen-crd-docs:
generate-code:
@./k8s/update-codegen.sh

generate-openshift-manifests:
@./olm.sh

helm-reindex:
@echo "Re-indexing helm chart release"
@./helm-reindex.sh

update-versions:
@./release.sh
@./release.sh --release-sidecar=$(RELEASE_SIDECAR)

release: update-versions generate-code regen-crd regen-crd-docs assets
release: update-versions generate-code regen-crd regen-crd-docs
@git add .

apply-gofmt:
@echo "Applying gofmt to all generated an existing files"
@GO111MODULE=on gofmt -w .

clean-swagger:
@echo "cleaning"
@rm -rf models
@rm -rf api/operations

install-go-swagger:
@echo "installing latest go-swagger"
@go install github.com/go-swagger/go-swagger/cmd/swagger@latest

swagger-operator:
@echo "Generating swagger server code from yaml"
@swagger generate server -A operator --main-package=operator --server-package=api --exclude-main -P models.Principal -f ./swagger.yml -r NOTICE
@echo "Generating typescript api"
@npx swagger-typescript-api -p ./swagger.yml -o ./web-app/src/api -n operatorApi.ts
@(cd web-app && npm install -g prettier && prettier -w .)

swagger-gen: install-go-swagger clean-swagger swagger-operator apply-gofmt
@echo "Done Generating swagger server code from yaml"

assets:
@(if [ -f "${NVM_DIR}/nvm.sh" ]; then \. "${NVM_DIR}/nvm.sh" && nvm install && nvm use && npm install -g yarn ; fi &&\
cd web-app; yarn install; make build-static; yarn prettier --write . --loglevel warn; cd ..)

test-unit-test-operator:
@echo "execute unit test and get coverage for api"
@(cd api && mkdir coverage && GO111MODULE=on go test -test.v -coverprofile=coverage/coverage-unit-test-operatorapi.out)

test-operator-integration:
@(echo "Start cd operator-integration && go test:")
@(pwd)
@(cd operator-integration && go test -coverpkg=../api -c -tags testrunmain . && mkdir -p coverage && ./operator-integration.test -test.v -test.run "^Test*" -test.coverprofile=coverage/operator-api.out)

test-operator:
@(env bash $(PWD)/web-app/tests/scripts/operator.sh)

models-gen-mac:
@swagger generate client -f ./swagger.yml -m ./models
@ls ./models | xargs -I {} gsed -i "2 a\
// This file is part of MinIO Operator\n\
// Copyright (c) 2023 MinIO, Inc.\n\
//\n\
// This program is free software: you can redistribute it and/or modify\n\
// it under the terms of the GNU Affero General Public License as published by\n\
// the Free Software Foundation, either version 3 of the License, or\n\
// (at your option) any later version.\n\
//\n\
// This program is distributed in the hope that it will be useful,\n\
// but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
// GNU Affero General Public License for more details.\n\
//\n\
// You should have received a copy of the GNU Affero General Public License\n\
// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\
//\n\
" ./models/{}
@rm -rf client

models-gen:
@swagger generate client -f ./swagger.yml -m ./models
@ls ./models | xargs -I {} sed -i "2 a\
// This file is part of MinIO Operator\n\
// Copyright (c) 2023 MinIO, Inc.\n\
//\n\
// This program is free software: you can redistribute it and/or modify\n\
// it under the terms of the GNU Affero General Public License as published by\n\
// the Free Software Foundation, either version 3 of the License, or\n\
// (at your option) any later version.\n\
//\n\
// This program is distributed in the hope that it will be useful,\n\
// but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
// GNU Affero General Public License for more details.\n\
//\n\
// You should have received a copy of the GNU Affero General Public License\n\
// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\
//\n\
" ./models/{}
@rm -rf client
110 changes: 6 additions & 104 deletions README.md
Original file line number Diff line number Diff line change
@@ -15,7 +15,6 @@ complete documentation on the MinIO Operator.
## Table of Contents

* [Architecture](#architecture)
* [MinIO Console](#minio-console)
* [MinIO Operator and `kubectl` Plugin](#minio-operator-and-kubectl-plugin)
* [Deploy the MinIO Operator and Create a Tenant](#deploy-the-minio-operator-and-create-a-tenant)
* [Prerequisites](#prerequisites)
@@ -31,22 +30,6 @@ MinIO Tenant deployed into Kubernetes:

MinIO provides multiple methods for accessing and managing the MinIO Tenant:

## MinIO Console

The MinIO Console provides a graphical user interface (GUI) for interacting with
MinIO Tenants. The MinIO Operator installs and configures the Console for each
tenant by default.

![Console Dashboard](docs/images/console-dashboard.png)

Administrators of MinIO Tenants can perform a variety of tasks through the Console,
including user creation, policy configuration, and bucket replication. The
Console also provides a high level view of Tenant health, usage, and healing
status.

For more complete documentation on using the MinIO Console, see the
[MinIO Console Github Repository](https://github.com/minio/console).

# Deploy the MinIO Operator and Create a Tenant

This procedure installs the MinIO Operator and creates a 4-node MinIO Tenant for supporting object storage operations in
@@ -76,8 +59,6 @@ for the MinIO Tenant.
kubectl create namespace minio-tenant
```

The MinIO Operator Console supports creating a namespace as part of the Tenant Creation procedure.

### Tenant Storage Class

The MinIO Kubernetes Operator automatically generates Persistent Volume Claims (`PVC`) as part of deploying a MinIO
@@ -165,7 +146,7 @@ for [kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kusto
use that to install MiniO Operator.

```sh
kubectl kustomize github.com/minio/operator\?ref=v5.0.15
kubectl kustomize github.com/minio/operator\?ref=v6.0.0
```

Run the following command to verify the status of the Operator:
@@ -178,96 +159,18 @@ The output resembles the following:

```sh
NAME READY STATUS RESTARTS AGE
console-6b6cf8946c-9cj25 1/1 Running 0 99s
minio-operator-69fd675557-lsrqg 1/1 Running 0 99s
```

The `console-*` pod runs the MinIO Operator Console, a graphical user
interface for creating and managing MinIO Tenants.

The `minio-operator-*` pod runs the MinIO Operator itself.

### 2) Access the Operator Console via NodePort

Get the token:

```sh
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: console-sa-secret
namespace: minio-operator
annotations:
kubernetes.io/service-account.name: console-sa
type: kubernetes.io/service-account-token
EOF
SA_TOKEN=$(kubectl -n minio-operator get secret console-sa-secret -o jsonpath="{.data.token}" | base64 --decode)
echo $SA_TOKEN
```
### 3) Build the Tenant Configuration

Change the console service to use NodePort:
We provide a variety of examples for creating MinIO Tenants in the `examples` directory. The following example creates a
4-node MinIO Tenant with 4 volumes per node:

```yaml
spec:
ports:
- name: http
protocol: TCP
port: 9090
targetPort: 9090
nodePort: 30080 <--------------- Using this port in the node
- name: https
protocol: TCP
port: 9443
targetPort: 9443
nodePort: 30869
selector:
app: console
clusterIP: 10.96.69.150
clusterIPs:
- 10.96.69.150
type: NodePort <-------------------- Using NodePort
kubectl apply -k github.com/minio/operator/examples/kustomization/bases
```

Open your browser to the provided address and use the JWT token to log in
to the Operator Console.

![Operator Console](docs/images/operator-console.png)

Click **+ Create Tenant** to open the Tenant Creation workflow.

### 3) Build the Tenant Configuration

The Operator Console **Create New Tenant** walkthrough builds out
a MinIO Tenant. The following list describes the basic configuration sections.

- **Name** - Specify the *Name*, *Namespace*, and *Storage Class* for the new Tenant.

The *Storage Class* must correspond to a [Storage Class](#default-storage-class) that corresponds
to [Local Persistent Volumes](#local-persistent-volumes) that can support the MinIO Tenant.

The *Namespace* must correspond to an existing [Namespace](#minio-tenant-namespace) that does *not* contain any other
MinIO Tenant.

Enable *Advanced Mode* to access additional advanced configuration options.

- **Tenant Size** - Specify the *Number of Servers*, *Number of Drives per Server*, and *Total Size* of the Tenant.

The *Resource Allocation* section summarizes the Tenant configuration
based on the inputs above.

Additional configuration inputs may be visible if *Advanced Mode* was enabled
in the previous step.

- **Preview Configuration** - summarizes the details of the new Tenant.

After configuring the Tenant to your requirements, click **Create** to create the new tenant.

The Operator Console displays credentials for connecting to the MinIO Tenant. You *must* download and secure these
credentials at this stage. You cannot trivially retrieve these credentials later.

You can monitor Tenant creation from the Operator Console.

### 4) Connect to the Tenant

Use the following command to list the services created by the MinIO
@@ -333,7 +236,6 @@ Use of MinIO Operator is governed by the GNU AGPLv3 or later, found in the [LICE
- [Examples for MinIO Tenant Settings](https://github.com/minio/operator/blob/master/docs/examples.md)
- [Custom Hostname Discovery](https://github.com/minio/operator/blob/master/docs/custom-name-templates.md).
- [Apply PodSecurityPolicy](https://github.com/minio/operator/blob/master/docs/pod-security-policy.md).
- [Deploy MinIO Tenant with Console](https://github.com/minio/operator/blob/master/docs/console.md).
- [Deploy MinIO Tenant with KES](https://github.com/minio/operator/blob/master/docs/kes.md).
- [Deploy MinIO Tenant with KES](shttps://github.com/minio/operator/blob/master/docs/kes.md).
- [Tenant API Documentation](docs/tenant_crd.adoc)
- [Policy Binding API Documentation](docs/policybinding_crd.adoc)
63 changes: 38 additions & 25 deletions UPGRADE.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,16 @@ Upgrades

In this document we will try to document relevant upgrade notes for the MinIO Operator.

v6.0.0
---

This release is focused on a variety of improvements and bug fixes. Mainly reducing the number of times we need to do a
rolling restart for a MinIO Tenant, for example when the MinIO Operator is upgraded or downgraded.

This release introduces a readiness probe to prevent kubernetes from routing traffic to a MinIO pod that is not ready

> ⚠️ Upgrading to v6.0.0 will cause all pods to restart upon upgrade.
v5.0.0
---

@@ -40,7 +50,8 @@ kubectl -n $NAMESPACE get svc $TENANT_NAME-prometheus-hl-svc -o yaml > $TENANT_N

After exporting these objects, remove `.metadata.ownerReferences` for all these files.

After upgrading, to have the MinIO Tenant keep using these services, just add the following environment variables to `.spec.env`
After upgrading, to have the MinIO Tenant keep using these services, just add the following environment variables
to `.spec.env`

```yaml
- name: MINIO_LOG_QUERY_AUTH_TOKEN
@@ -56,7 +67,6 @@ After upgrading, to have the MinIO Tenant keep using these services, just add th
value: http://<TENANT_NAME>-prometheus-hl-svc:9090
```
v4.4.5
---
@@ -101,7 +111,7 @@ securityContext:

This scenario is automatically handled by the operator, however if the tenant is updated from a pre-stored source (i.e:
a yaml file) which is missing the added `securityContext` this problem may arise again, so update your stored yamls
respectively.
respectively.

v4.2.2 to v4.2.3
---
@@ -110,7 +120,8 @@ Before upgrading the `MinIO Operator` you need to make the following changes to

- Update your current `MinIO image` to the latest version in the tenant spec.
- Make sure every `pool` in `tenant.spec.pools` explicitly set a `securityContext` if not configured already, if this is
the first time you are configuring a `securityContext` then your `MinIO` pods are running as root, and you need to use:
the first time you are configuring a `securityContext` then your `MinIO` pods are running as root, and you need to
use:

```yaml
securityContext:
@@ -124,7 +135,7 @@ Before upgrading the `MinIO Operator` you need to make the following changes to

```yaml
image: "minio/minio:$(LATEST-VERSION)"
...
...
pools:
- servers: 4
name: "pool-0"
@@ -176,7 +187,7 @@ Before upgrading the `MinIO Operator` you need to make the following changes to

```yaml
image: "minio/minio:$(LATEST-VERSION)"
...
...
zones:
- servers: 4
name: "zone-0"
@@ -195,29 +206,30 @@ Before upgrading the `MinIO Operator` you need to make the following changes to
runAsGroup: 0
runAsNonRoot: false
fsGroup: 0
- servers: 4
name: "zone-1"
volumesPerServer: 4
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Ti
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
fsGroup: 0
- servers: 4
name: "zone-1"
volumesPerServer: 4
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Ti
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
fsGroup: 0
```

You can make all the changes directly via `kubectl edit tenants $(TENANT-NAME) -n $(NAMESPACE)` or edit your
`tenant.yaml` and apply the changes: `kubectl apply -f tenant.yaml`.

Failing to apply this changes will cause some issues during the upgrade such as the tenants not able to provision because
Failing to apply this changes will cause some issues during the upgrade such as the tenants not able to provision
because
of wrong `persistent volume claims` (this happens if you don't add the zone name) or MinIO not able to `read/write` on
existing volumes (this happens if you don't add the right `securityContext`) or they will take too long to start.

@@ -236,7 +248,8 @@ existing tenant.

# Upgrade MinIO Operator via Helm Charts

Make sure your current version of the `tenants.minio.min.io` `CRD` includes the necessary `labels` and `annotations` for `Helm`
Make sure your current version of the `tenants.minio.min.io` `CRD` includes the necessary `labels` and `annotations`
for `Helm`
to perform the upgrade:

```bash
396 changes: 0 additions & 396 deletions api/admin_client_mock.go

This file was deleted.

99 changes: 0 additions & 99 deletions api/admin_info.go

This file was deleted.

67 changes: 0 additions & 67 deletions api/admin_policies_test.go

This file was deleted.

210 changes: 0 additions & 210 deletions api/certificate-handlers.go

This file was deleted.

643 changes: 0 additions & 643 deletions api/client-admin.go

This file was deleted.

115 changes: 0 additions & 115 deletions api/client.go

This file was deleted.

221 changes: 0 additions & 221 deletions api/config.go

This file was deleted.

98 changes: 0 additions & 98 deletions api/config_test.go

This file was deleted.

186 changes: 0 additions & 186 deletions api/configuration-handlers.go

This file was deleted.

416 changes: 0 additions & 416 deletions api/configure_operator.go

This file was deleted.

65 changes: 0 additions & 65 deletions api/consts.go

This file was deleted.

88 changes: 0 additions & 88 deletions api/cookies.go

This file was deleted.

35 changes: 0 additions & 35 deletions api/doc.go

This file was deleted.

96 changes: 0 additions & 96 deletions api/domain-handlers.go

This file was deleted.

43 changes: 0 additions & 43 deletions api/domain-handlers_test.go

This file was deleted.

10,161 changes: 0 additions & 10,161 deletions api/embedded_spec.go

This file was deleted.

1,206 changes: 0 additions & 1,206 deletions api/encryption-handlers.go

This file was deleted.

741 changes: 0 additions & 741 deletions api/encryption-handlers_test.go

This file was deleted.

267 changes: 0 additions & 267 deletions api/errors.go

This file was deleted.

138 changes: 0 additions & 138 deletions api/errors_test.go

This file was deleted.

75 changes: 0 additions & 75 deletions api/event-handlers.go

This file was deleted.

101 changes: 0 additions & 101 deletions api/idp-handlers.go

This file was deleted.

128 changes: 0 additions & 128 deletions api/idp-handlers_test.go

This file was deleted.

114 changes: 0 additions & 114 deletions api/k8s_client.go

This file was deleted.

102 changes: 0 additions & 102 deletions api/k8s_client_mock.go

This file was deleted.

91 changes: 0 additions & 91 deletions api/kubernetes.go

This file was deleted.

245 changes: 0 additions & 245 deletions api/login.go

This file was deleted.

81 changes: 0 additions & 81 deletions api/logout.go

This file was deleted.

83 changes: 0 additions & 83 deletions api/logs.go

This file was deleted.

110 changes: 0 additions & 110 deletions api/logs_test.go

This file was deleted.

193 changes: 0 additions & 193 deletions api/marketplace.go

This file was deleted.

194 changes: 0 additions & 194 deletions api/marketplace_test.go

This file was deleted.

48 changes: 0 additions & 48 deletions api/minio.go

This file was deleted.

43 changes: 0 additions & 43 deletions api/minio_operator_mock.go

This file was deleted.

79 changes: 0 additions & 79 deletions api/namespaces.go

This file was deleted.

63 changes: 0 additions & 63 deletions api/namespaces_test.go

This file was deleted.

370 changes: 0 additions & 370 deletions api/nodes.go

This file was deleted.

366 changes: 0 additions & 366 deletions api/nodes_test.go

This file was deleted.

73 changes: 0 additions & 73 deletions api/operations/auth/login_detail.go

This file was deleted.

63 changes: 0 additions & 63 deletions api/operations/auth/login_detail_parameters.go

This file was deleted.

135 changes: 0 additions & 135 deletions api/operations/auth/login_detail_responses.go

This file was deleted.

104 changes: 0 additions & 104 deletions api/operations/auth/login_detail_urlbuilder.go

This file was deleted.

73 changes: 0 additions & 73 deletions api/operations/auth/login_oauth2_auth.go

This file was deleted.

101 changes: 0 additions & 101 deletions api/operations/auth/login_oauth2_auth_parameters.go

This file was deleted.

115 changes: 0 additions & 115 deletions api/operations/auth/login_oauth2_auth_responses.go

This file was deleted.

104 changes: 0 additions & 104 deletions api/operations/auth/login_oauth2_auth_urlbuilder.go

This file was deleted.

Loading