From 937e20fb848611f9799c825a42a01eacd6e2d1a9 Mon Sep 17 00:00:00 2001 From: pjuarezd Date: Thu, 12 Dec 2024 09:39:07 -0800 Subject: [PATCH 1/5] Increase minimal kubernetes version tested to v1.29.10 --- .github/workflows/kubernetes-tests.yml | 4 ++-- testing/kind-config-floor.yaml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/kubernetes-tests.yml b/.github/workflows/kubernetes-tests.yml index 470c3ab8da4..52d0f9cba01 100644 --- a/.github/workflows/kubernetes-tests.yml +++ b/.github/workflows/kubernetes-tests.yml @@ -479,7 +479,7 @@ jobs: # Runs a set of commands using the runners shell - name: Deploy a MinIO Tenant on Kind run: | - curl -sLO "https://dl.k8s.io/release/v1.28.12/bin/linux/amd64/kubectl" -o kubectl + curl -sLO "https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl" -o kubectl chmod +x kubectl mv kubectl /usr/local/bin "${GITHUB_WORKSPACE}/testing/check-helm.sh" @@ -518,7 +518,7 @@ jobs: env: TEST_FLOOR: true run: | - curl -sLO "https://dl.k8s.io/release/v1.28.12/bin/linux/amd64/kubectl" -o kubectl + curl -sLO "https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl" -o kubectl chmod +x kubectl mv kubectl /usr/local/bin "${GITHUB_WORKSPACE}/testing/check-helm.sh" diff --git a/testing/kind-config-floor.yaml b/testing/kind-config-floor.yaml index 3e8baee45c8..2eb589d892c 100644 --- a/testing/kind-config-floor.yaml +++ b/testing/kind-config-floor.yaml @@ -3,12 +3,12 @@ kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - image: kindest/node:v1.28.9 + image: kindest/node:v1.29.10 - role: worker - image: kindest/node:v1.28.9 + image: kindest/node:v1.29.10 - role: worker - image: kindest/node:v1.28.9 + image: kindest/node:v1.29.10 - role: worker - image: kindest/node:v1.28.9 + image: kindest/node:v1.29.10 - role: worker - image: kindest/node:v1.28.9 + image: kindest/node:v1.29.10 From e4ffd01a4f5a05299f3fe44706bdbd8ebc9aab7b Mon Sep 17 00:00:00 2001 From: pjuarezd Date: Thu, 12 Dec 2024 09:39:42 -0800 Subject: [PATCH 2/5] Release v7.0.0 --- README.md | 9 ++- docs/notes/v7.0.0.md | 11 ++++ docs/policybinding_crd.adoc | 4 +- docs/templates/asciidoctor/gv_list.tpl | 4 +- docs/tenant_crd.adoc | 4 +- examples/kustomization/base/tenant.yaml | 2 +- .../tenant-certmanager-kes/tenant.yaml | 2 +- .../tenant-kes-encryption/tenant.yaml | 2 +- helm/operator/Chart.yaml | 4 +- .../templates/minio.min.io_tenants.yaml | 57 ++++++++++++++++++- .../templates/sts.min.io_policybindings.yaml | 4 +- helm/operator/values.yaml | 10 ++-- helm/tenant/Chart.yaml | 4 +- helm/tenant/values.yaml | 10 ++-- pkg/apis/minio.min.io/v2/constants.go | 6 +- pkg/apis/minio.min.io/v2/types.go | 2 +- pkg/apis/sts.min.io/v1beta1/types.go | 2 +- .../minio.min.io/v2/poolsmetadata.go | 4 +- resources/base/crds/minio.min.io_tenants.yaml | 57 ++++++++++++++++++- .../base/crds/sts.min.io_policybindings.yaml | 4 +- resources/base/deployment.yaml | 2 +- resources/kustomization.yaml | 2 +- testing/common.sh | 2 +- testing/console-tenant+kes.sh | 2 +- 24 files changed, 163 insertions(+), 47 deletions(-) create mode 100644 docs/notes/v7.0.0.md diff --git a/README.md b/README.md index 4b90e0c0a5e..d1bdb1c0431 100644 --- a/README.md +++ b/README.md @@ -36,11 +36,10 @@ a Kubernetes cluster. ## Prerequisites -### Kubernetes 1.28.0 or Later +### Kubernetes 1.29.0 or Later -Starting with Operator v6.0.0, MinIO requires Kubernetes version 1.28.0 or later. You must upgrade your Kubernetes -cluster to 1.28.0 or later to use Operator -v6.0.0+. +Starting with Operator v7.0.0, MinIO requires Kubernetes version 1.29.0 or later. You must upgrade your Kubernetes +cluster to 1.29.0 or later to use Operator v7.0.0+. This procedure assumes the host machine has [`kubectl`](https://kubernetes.io/docs/tasks/tools) installed and configured with access to the target Kubernetes cluster. @@ -141,7 +140,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=v6.0.4 | kubectl apply -f - +kubectl kustomize github.com/minio/operator\?ref=v7.0.0 | kubectl apply -f - ``` Run the following command to verify the status of the Operator: diff --git a/docs/notes/v7.0.0.md b/docs/notes/v7.0.0.md new file mode 100644 index 00000000000..f5f47858b06 --- /dev/null +++ b/docs/notes/v7.0.0.md @@ -0,0 +1,11 @@ +# MinIO Operator v7.0.0 release notes + +## About this release + +MinIO Operator is the recommended production-ready way to manage MinIO deployments in Kubernetes. This version includes a new base version requirements, deprecations, bugfixes and more. + +## What’s new? + +Operator 7.0.0 is now available. This release requires Kubernetes version 1.29.0 or later. +If your cluster does not use Kubernetes version 1.29.0 or later, you must upgrade your cluster to before installing or upgrading to Operator v7.0.0+. + diff --git a/docs/policybinding_crd.adoc b/docs/policybinding_crd.adoc index 7d0655b3f67..586d39650ad 100644 --- a/docs/policybinding_crd.adoc +++ b/docs/policybinding_crd.adoc @@ -4,8 +4,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-10-02T17-50-41Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-09-11T07-22-50Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-11-07T00-52-20Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-11-25T13-44-31Z] :mc-image: https://hub.docker.com/r/minio/mc/tags[minio/mc:RELEASE.2024-10-02T08-27-28Z] diff --git a/docs/templates/asciidoctor/gv_list.tpl b/docs/templates/asciidoctor/gv_list.tpl index 7a849bfb9dc..b98c06e9680 100644 --- a/docs/templates/asciidoctor/gv_list.tpl +++ b/docs/templates/asciidoctor/gv_list.tpl @@ -7,8 +7,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-10-02T17-50-41Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-09-11T07-22-50Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-11-07T00-52-20Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-11-25T13-44-31Z] :mc-image: https://hub.docker.com/r/minio/mc/tags[minio/mc:RELEASE.2024-10-02T08-27-28Z] {{ range $groupVersions }} diff --git a/docs/tenant_crd.adoc b/docs/tenant_crd.adoc index e01e63ed310..678d205bf69 100644 --- a/docs/tenant_crd.adoc +++ b/docs/tenant_crd.adoc @@ -4,8 +4,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-10-02T17-50-41Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-09-11T07-22-50Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2024-11-07T00-52-20Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2024-11-25T13-44-31Z] :mc-image: https://hub.docker.com/r/minio/mc/tags[minio/mc:RELEASE.2024-10-02T08-27-28Z] diff --git a/examples/kustomization/base/tenant.yaml b/examples/kustomization/base/tenant.yaml index 80198d275a1..0824212f782 100644 --- a/examples/kustomization/base/tenant.yaml +++ b/examples/kustomization/base/tenant.yaml @@ -144,7 +144,7 @@ spec: ## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret externalClientCertSecrets: [ ] ## Registry location and Tag to download MinIO Server image - image: quay.io/minio/minio:RELEASE.2024-10-02T17-50-41Z + image: quay.io/minio/minio:RELEASE.2024-11-07T00-52-20Z imagePullSecret: { } ## Mount path where PV will be mounted inside container(s). mountPath: /export diff --git a/examples/kustomization/tenant-certmanager-kes/tenant.yaml b/examples/kustomization/tenant-certmanager-kes/tenant.yaml index a3d019868cb..2389f3e6f59 100644 --- a/examples/kustomization/tenant-certmanager-kes/tenant.yaml +++ b/examples/kustomization/tenant-certmanager-kes/tenant.yaml @@ -14,7 +14,7 @@ spec: externalCertSecret: name: tenant-certmanager-2-tls type: cert-manager.io/v1 - image: minio/kes:2024-09-11T07-22-50Z + image: minio/kes:2024-11-25T13-44-31Z imagePullPolicy: IfNotPresent kesSecret: name: kes-configuration diff --git a/examples/kustomization/tenant-kes-encryption/tenant.yaml b/examples/kustomization/tenant-kes-encryption/tenant.yaml index 109e883c121..8c46ab08ff3 100644 --- a/examples/kustomization/tenant-kes-encryption/tenant.yaml +++ b/examples/kustomization/tenant-kes-encryption/tenant.yaml @@ -7,7 +7,7 @@ spec: ## Define configuration for KES (stateless and distributed key-management system) ## Refer https://github.com/minio/kes kes: - image: "" # minio/kes:2024-09-11T07-22-50Z + image: "" # minio/kes:2024-11-25T13-44-31Z env: [ ] replicas: 2 kesSecret: diff --git a/helm/operator/Chart.yaml b/helm/operator/Chart.yaml index 98f4b2eb643..48163ef860d 100644 --- a/helm/operator/Chart.yaml +++ b/helm/operator/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: A Helm chart for MinIO Operator name: operator -version: 6.0.4 -appVersion: v6.0.4 +version: 7.0.0 +appVersion: v7.0.0 keywords: - storage - object-storage diff --git a/helm/operator/templates/minio.min.io_tenants.yaml b/helm/operator/templates/minio.min.io_tenants.yaml index e295126ce51..72d7e591fc6 100644 --- a/helm/operator/templates/minio.min.io_tenants.yaml +++ b/helm/operator/templates/minio.min.io_tenants.yaml @@ -3,8 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.min.io/version: v6.0.4 + controller-gen.kubebuilder.io/version: v0.16.5 + operator.min.io/version: v7.0.0 name: tenants.minio.min.io spec: group: minio.min.io @@ -94,10 +94,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -474,6 +476,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -487,6 +496,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -735,6 +745,7 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: @@ -742,6 +753,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean @@ -753,6 +765,7 @@ spec: type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -761,6 +774,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -778,6 +792,7 @@ spec: sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -1281,6 +1296,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -1387,6 +1403,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -1468,6 +1485,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1585,6 +1604,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -2338,6 +2358,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2412,6 +2434,8 @@ spec: type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -2654,6 +2678,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -3264,6 +3289,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3340,6 +3367,8 @@ spec: type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -3672,6 +3701,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4020,6 +4050,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4126,6 +4157,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4207,6 +4239,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4324,6 +4358,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4448,6 +4483,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4681,10 +4718,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -5061,6 +5100,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -5074,6 +5120,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -5322,6 +5369,7 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: @@ -5329,6 +5377,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean @@ -5340,6 +5389,7 @@ spec: type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -5348,6 +5398,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -5365,6 +5416,7 @@ spec: sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -5458,6 +5510,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port diff --git a/helm/operator/templates/sts.min.io_policybindings.yaml b/helm/operator/templates/sts.min.io_policybindings.yaml index c1a3ac2446b..1dc6be5989a 100644 --- a/helm/operator/templates/sts.min.io_policybindings.yaml +++ b/helm/operator/templates/sts.min.io_policybindings.yaml @@ -3,8 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.min.io/version: v6.0.4 + controller-gen.kubebuilder.io/version: v0.16.5 + operator.min.io/version: v7.0.0 name: policybindings.sts.min.io spec: group: sts.min.io diff --git a/helm/operator/values.yaml b/helm/operator/values.yaml index a86506cf552..5d08e8f749d 100644 --- a/helm/operator/values.yaml +++ b/helm/operator/values.yaml @@ -28,14 +28,14 @@ operator: ### # Specify the Operator container image to use for the deployment. # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v6.0.4 tag. + # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. # The container pulls the image if not already present: # # .. code-block:: yaml # # image: # repository: quay.io/minio/operator - # tag: v6.0.4 + # tag: v7.0.0 # pullPolicy: IfNotPresent # # The chart also supports specifying an image based on digest value: @@ -49,20 +49,20 @@ operator: # image: repository: quay.io/minio/operator - tag: v6.0.4 + tag: v7.0.0 pullPolicy: IfNotPresent ### # Specify the sidecar container image to deploy on tenant pods for init container and sidecar. # Only need to change this if want to use a different version that the default, or want to set a custom registry. # ``sidecarImage.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v6.0.4 tag. + # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.0.0 tag. # The container pulls the image if not already present: # # .. code-block:: yaml # # sidecarImage: # repository: quay.io/minio/operator-sidecar - # tag: v6.0.4 + # tag: v7.0.0 # pullPolicy: IfNotPresent # # The chart also supports specifying an image based on digest value: diff --git a/helm/tenant/Chart.yaml b/helm/tenant/Chart.yaml index 49d5d12b045..3a006f76552 100644 --- a/helm/tenant/Chart.yaml +++ b/helm/tenant/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: A Helm chart for MinIO Operator name: tenant -version: 6.0.4 -appVersion: v6.0.4 +version: 7.0.0 +appVersion: v7.0.0 keywords: - storage - object-storage diff --git a/helm/tenant/values.yaml b/helm/tenant/values.yaml index 1dcc4311502..4fd58527184 100644 --- a/helm/tenant/values.yaml +++ b/helm/tenant/values.yaml @@ -8,14 +8,14 @@ tenant: ### # Specify the Operator container image to use for the deployment. # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v6.0.4 tag. + # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. # The container pulls the image if not already present: # # .. code-block:: yaml # # image: # repository: quay.io/minio/minio - # tag: RELEASE.2024-10-02T17-50-41Z + # tag: RELEASE.2024-11-07T00-52-20Z # pullPolicy: IfNotPresent # # The chart also supports specifying an image based on digest value: @@ -30,7 +30,7 @@ tenant: # image: repository: quay.io/minio/minio - tag: RELEASE.2024-10-02T17-50-41Z + tag: RELEASE.2024-11-07T00-52-20Z pullPolicy: IfNotPresent ### # @@ -386,14 +386,14 @@ tenant: # # Image from tag (original behavior), for example: # # image: # # repository: quay.io/minio/kes - # # tag: 2024-09-11T07-22-50Z + # # tag: 2024-11-25T13-44-31Z # # Image from digest (added after original behavior), for example: # # image: # # repository: quay.io/minio/kes@sha256 # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b # image: # repository: quay.io/minio/kes - # tag: 2024-09-11T07-22-50Z + # tag: 2024-11-25T13-44-31Z # pullPolicy: IfNotPresent # env: [ ] # replicas: 2 diff --git a/pkg/apis/minio.min.io/v2/constants.go b/pkg/apis/minio.min.io/v2/constants.go index b4b9c6ae5ca..ad4354679be 100644 --- a/pkg/apis/minio.min.io/v2/constants.go +++ b/pkg/apis/minio.min.io/v2/constants.go @@ -106,7 +106,7 @@ const MinIOVolumeMountPath = "/export" const MinIOVolumeSubPath = "" // DefaultMinIOImage specifies the default MinIO Docker hub image -const DefaultMinIOImage = "minio/minio:RELEASE.2024-10-02T17-50-41Z" +const DefaultMinIOImage = "minio/minio:RELEASE.2024-11-07T00-52-20Z" // DefaultMinIOUpdateURL specifies the default MinIO URL where binaries are // pulled from during MinIO upgrades @@ -143,8 +143,8 @@ const ConsoleAdminPolicyName = "consoleAdmin" // KES Related Constants -// DefaultKESImage specifies the 2024-09-11T07-22-50Z KES Docker hub image -const DefaultKESImage = "minio/kes:2024-09-11T07-22-50Z" +// DefaultKESImage specifies the 2024-11-25T13-44-31Z KES Docker hub image +const DefaultKESImage = "minio/kes:2024-11-25T13-44-31Z" // KESInstanceLabel is applied to the KES pods of a Tenant cluster const KESInstanceLabel = "v1.min.io/kes" diff --git a/pkg/apis/minio.min.io/v2/types.go b/pkg/apis/minio.min.io/v2/types.go index 4644f72a58a..115a390ff21 100644 --- a/pkg/apis/minio.min.io/v2/types.go +++ b/pkg/apis/minio.min.io/v2/types.go @@ -31,7 +31,7 @@ import ( // +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.currentState" // +kubebuilder:printcolumn:name="Health",type="string",JSONPath=".status.healthStatus" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:metadata:annotations=operator.min.io/version=v6.0.4 +// +kubebuilder:metadata:annotations=operator.min.io/version=v7.0.0 // +kubebuilder:storageversion type Tenant struct { metav1.TypeMeta `json:",inline"` diff --git a/pkg/apis/sts.min.io/v1beta1/types.go b/pkg/apis/sts.min.io/v1beta1/types.go index 3d64b83cf64..7d8b5538a40 100644 --- a/pkg/apis/sts.min.io/v1beta1/types.go +++ b/pkg/apis/sts.min.io/v1beta1/types.go @@ -26,7 +26,7 @@ import ( // +kubebuilder:resource:scope=Namespaced,shortName=policybinding,singular=policybinding // +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.currentState" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:metadata:annotations=operator.min.io/version=v6.0.4 +// +kubebuilder:metadata:annotations=operator.min.io/version=v7.0.0 // +kubebuilder:storageversion // +groupName=policybinding.sts.min.io // +versionName=v1beta1 diff --git a/pkg/client/applyconfiguration/minio.min.io/v2/poolsmetadata.go b/pkg/client/applyconfiguration/minio.min.io/v2/poolsmetadata.go index 613013e8ce5..c8674758d1f 100644 --- a/pkg/client/applyconfiguration/minio.min.io/v2/poolsmetadata.go +++ b/pkg/client/applyconfiguration/minio.min.io/v2/poolsmetadata.go @@ -18,14 +18,14 @@ package v2 -// PoolsMetadataApplyConfiguration represents an declarative configuration of the PoolsMetadata type for use +// PoolsMetadataApplyConfiguration represents a declarative configuration of the PoolsMetadata type for use // with apply. type PoolsMetadataApplyConfiguration struct { Labels map[string]string `json:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` } -// PoolsMetadataApplyConfiguration constructs an declarative configuration of the PoolsMetadata type for use with +// PoolsMetadataApplyConfiguration constructs a declarative configuration of the PoolsMetadata type for use with // apply. func PoolsMetadata() *PoolsMetadataApplyConfiguration { return &PoolsMetadataApplyConfiguration{} diff --git a/resources/base/crds/minio.min.io_tenants.yaml b/resources/base/crds/minio.min.io_tenants.yaml index e295126ce51..72d7e591fc6 100644 --- a/resources/base/crds/minio.min.io_tenants.yaml +++ b/resources/base/crds/minio.min.io_tenants.yaml @@ -3,8 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.min.io/version: v6.0.4 + controller-gen.kubebuilder.io/version: v0.16.5 + operator.min.io/version: v7.0.0 name: tenants.minio.min.io spec: group: minio.min.io @@ -94,10 +94,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -474,6 +476,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -487,6 +496,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -735,6 +745,7 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: @@ -742,6 +753,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean @@ -753,6 +765,7 @@ spec: type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -761,6 +774,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -778,6 +792,7 @@ spec: sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -1281,6 +1296,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -1387,6 +1403,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -1468,6 +1485,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1585,6 +1604,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -2338,6 +2358,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2412,6 +2434,8 @@ spec: type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -2654,6 +2678,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -3264,6 +3289,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3340,6 +3367,8 @@ spec: type: integer type: array x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -3672,6 +3701,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4020,6 +4050,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4126,6 +4157,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4207,6 +4239,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4324,6 +4358,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port @@ -4448,6 +4483,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4681,10 +4718,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -5061,6 +5100,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -5074,6 +5120,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -5322,6 +5369,7 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: @@ -5329,6 +5377,7 @@ spec: type: array x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean @@ -5340,6 +5389,7 @@ spec: type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -5348,6 +5398,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -5365,6 +5416,7 @@ spec: sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -5458,6 +5510,7 @@ spec: format: int32 type: integer service: + default: "" type: string required: - port diff --git a/resources/base/crds/sts.min.io_policybindings.yaml b/resources/base/crds/sts.min.io_policybindings.yaml index c1a3ac2446b..1dc6be5989a 100644 --- a/resources/base/crds/sts.min.io_policybindings.yaml +++ b/resources/base/crds/sts.min.io_policybindings.yaml @@ -3,8 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - operator.min.io/version: v6.0.4 + controller-gen.kubebuilder.io/version: v0.16.5 + operator.min.io/version: v7.0.0 name: policybindings.sts.min.io spec: group: sts.min.io diff --git a/resources/base/deployment.yaml b/resources/base/deployment.yaml index 1beac815e95..a6ef62abe17 100644 --- a/resources/base/deployment.yaml +++ b/resources/base/deployment.yaml @@ -23,7 +23,7 @@ spec: serviceAccountName: minio-operator containers: - name: minio-operator - image: minio/operator:v6.0.4 + image: minio/operator:v7.0.0 imagePullPolicy: IfNotPresent args: - controller diff --git a/resources/kustomization.yaml b/resources/kustomization.yaml index 8a3328ff7fb..0ebe3e58e6b 100644 --- a/resources/kustomization.yaml +++ b/resources/kustomization.yaml @@ -5,7 +5,7 @@ commonAnnotations: operator.min.io/authors: "MinIO, Inc." operator.min.io/license: "AGPLv3" operator.min.io/support: "https://subnet.min.io" - operator.min.io/version: v6.0.4 + operator.min.io/version: v7.0.0 commonLabels: app.kubernetes.io/name: operator resources: diff --git a/testing/common.sh b/testing/common.sh index 54e7ab61f98..f61d718815c 100644 --- a/testing/common.sh +++ b/testing/common.sh @@ -26,7 +26,7 @@ DEV_TEST=$OPERATOR_DEV_TEST # Set OPERATOR_DEV_TEST to skip downloading these dependencies if [[ -z "${DEV_TEST}" ]]; then ## Make sure to install things if not present already - sudo curl -#L "https://dl.k8s.io/release/v1.28.12/bin/$OS/$ARCH/kubectl" -o /usr/local/bin/kubectl + sudo curl -#L "https://dl.k8s.io/release/v1.29.10/bin/$OS/$ARCH/kubectl" -o /usr/local/bin/kubectl sudo chmod +x /usr/local/bin/kubectl sudo curl -#L "https://dl.min.io/client/mc/release/${OS}-${ARCH}/mc" -o /usr/local/bin/mc diff --git a/testing/console-tenant+kes.sh b/testing/console-tenant+kes.sh index 2392d4df652..6753b3ef51b 100755 --- a/testing/console-tenant+kes.sh +++ b/testing/console-tenant+kes.sh @@ -97,7 +97,7 @@ function test_kes_tenant() { sed -i -e 's/ROLE_ID/'"$ROLE_ID"'/g' "${SCRIPT_DIR}/kes-config.yaml" sed -i -e 's/SECRET_ID/'"$SECRET_ID"'/g' "${SCRIPT_DIR}/kes-config.yaml" cp "${SCRIPT_DIR}/kes-config.yaml" "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/kes-configuration-secret.yaml" - yq e -i '.spec.kes.image = "minio/kes:2024-09-11T07-22-50Z"' "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/tenant.yaml" + yq e -i '.spec.kes.image = "minio/kes:2024-11-25T13-44-31Z"' "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/tenant.yaml" kubectl apply -k "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption" echo "Check Tenant Status in tenant-kms-encrypted namespace for myminio:" From 6167902a1ddce9b0f07a549b0dd77d982fb37316 Mon Sep 17 00:00:00 2001 From: pjuarezd Date: Thu, 12 Dec 2024 09:46:18 -0800 Subject: [PATCH 3/5] update release notes --- docs/notes/v7.0.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/notes/v7.0.0.md b/docs/notes/v7.0.0.md index f5f47858b06..24b6ea4e8f9 100644 --- a/docs/notes/v7.0.0.md +++ b/docs/notes/v7.0.0.md @@ -9,3 +9,17 @@ MinIO Operator is the recommended production-ready way to manage MinIO deploymen Operator 7.0.0 is now available. This release requires Kubernetes version 1.29.0 or later. If your cluster does not use Kubernetes version 1.29.0 or later, you must upgrade your cluster to before installing or upgrading to Operator v7.0.0+. +Some breaking changes motivates a mayor release, here is the list of breaking changes: + +* remove minioJob +* remove Pod Distribution Budget (PDB) + +Additionally several bugfixes are included in this version: + +* Add storageLabels value to tenant chart in https://github.com/minio/operator/pull/2335 +* Allow custom (non-propagating) stateful set metadata in https://github.com/minio/operator/pull/2337 +* feat:add portName to container in https://github.com/minio/operator/pull/2347 +* fix: incorrect error log `Waiting for MinIO to be ready: %!s()` in https://github.com/minio/operator/pull/2345 +* Fix base example url in https://github.com/minio/operator/pull/2349 +* Fix storageClassName references in tenant.pool.volumeClaimtemplates in https://github.com/minio/operator/pull/2362 +* Add initContainers to tenant Helm Chart in https://github.com/minio/operator/pull/2366 From 08e61ff851d09d86a0497b21763fa137f9802aff Mon Sep 17 00:00:00 2001 From: pjuarezd Date: Thu, 12 Dec 2024 09:50:23 -0800 Subject: [PATCH 4/5] release sidecar v7.0.0 --- pkg/resources/statefulsets/minio-sidecar.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/resources/statefulsets/minio-sidecar.go b/pkg/resources/statefulsets/minio-sidecar.go index 126efcc1d95..114774643c2 100644 --- a/pkg/resources/statefulsets/minio-sidecar.go +++ b/pkg/resources/statefulsets/minio-sidecar.go @@ -23,7 +23,7 @@ import ( const ( // DefaultSidecarImage is the sidecar image to use for tenants - DefaultSidecarImage = "quay.io/minio/operator-sidecar:v6.0.2" + DefaultSidecarImage = "quay.io/minio/operator-sidecar:v7.0.0" ) var ( From 976d09506649786683cdef237397609dc1b8ecd7 Mon Sep 17 00:00:00 2001 From: Pedro Juarez Date: Fri, 13 Dec 2024 12:04:54 -0800 Subject: [PATCH 5/5] Update docs/notes/v7.0.0.md Co-authored-by: Ravind Kumar --- docs/notes/v7.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notes/v7.0.0.md b/docs/notes/v7.0.0.md index 24b6ea4e8f9..df6e5996123 100644 --- a/docs/notes/v7.0.0.md +++ b/docs/notes/v7.0.0.md @@ -9,7 +9,7 @@ MinIO Operator is the recommended production-ready way to manage MinIO deploymen Operator 7.0.0 is now available. This release requires Kubernetes version 1.29.0 or later. If your cluster does not use Kubernetes version 1.29.0 or later, you must upgrade your cluster to before installing or upgrading to Operator v7.0.0+. -Some breaking changes motivates a mayor release, here is the list of breaking changes: +Some breaking changes motivates a major release, here is the list of breaking changes: * remove minioJob * remove Pod Distribution Budget (PDB)