From 469f33beeda6532b4dd5d65004acf250a87b0f0c Mon Sep 17 00:00:00 2001 From: juan131 Date: Mon, 18 Nov 2024 12:44:04 +0100 Subject: [PATCH 1/2] [bitnami/seaweedfs] Add support for customizing PVC retention policies Signed-off-by: juan131 --- bitnami/seaweedfs/Chart.yaml | 2 +- bitnami/seaweedfs/README.md | 76 ++++++++++--------- .../templates/master/statefulset.yaml | 5 ++ .../templates/volume/statefulset.yaml | 5 ++ bitnami/seaweedfs/values.yaml | 38 +++++++--- 5 files changed, 81 insertions(+), 45 deletions(-) diff --git a/bitnami/seaweedfs/Chart.yaml b/bitnami/seaweedfs/Chart.yaml index 3341333007fbcf..44ab473515d52b 100644 --- a/bitnami/seaweedfs/Chart.yaml +++ b/bitnami/seaweedfs/Chart.yaml @@ -50,4 +50,4 @@ name: seaweedfs sources: - https://github.com/bitnami/charts/tree/main/bitnami/seawwedfs - https://github.com/bitnami/containers/tree/main/bitnami/seaweedfs -version: 4.0.0 +version: 4.1.0 diff --git a/bitnami/seaweedfs/README.md b/bitnami/seaweedfs/README.md index fba5edf4c283f5..b15a3b27b63fa4 100644 --- a/bitnami/seaweedfs/README.md +++ b/bitnami/seaweedfs/README.md @@ -324,7 +324,7 @@ If you encounter errors when working with persistent volumes, refer to our [trou | `master.args` | Override default Master Server container args (useful when using custom images) | `[]` | | `master.automountServiceAccountToken` | Mount Service Account token in Master Server pods | `false` | | `master.hostAliases` | Master Server pods host aliases | `[]` | -| `master.statefulsetAnnotations` | Annotations for Master Server statefulset | `{}` | +| `master.statefulsetAnnotations` | Annotations for Master Server StatefulSet | `{}` | | `master.podLabels` | Extra labels for Master Server pods | `{}` | | `master.podAnnotations` | Annotations for Master Server pods | `{}` | | `master.podAffinityPreset` | Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard` | `""` | @@ -335,8 +335,8 @@ If you encounter errors when working with persistent volumes, refer to our [trou | `master.affinity` | Affinity for Master Server pods assignment | `{}` | | `master.nodeSelector` | Node labels for Master Server pods assignment | `{}` | | `master.tolerations` | Tolerations for Master Server pods assignment | `[]` | -| `master.updateStrategy.type` | Master Server statefulset strategy type | `RollingUpdate` | -| `master.podManagementPolicy` | Pod management policy for Master Server statefulset | `Parallel` | +| `master.updateStrategy.type` | Master Server StatefulSet strategy type | `RollingUpdate` | +| `master.podManagementPolicy` | Pod management policy for Master Server StatefulSet | `Parallel` | | `master.priorityClassName` | Master Server pods' priorityClassName | `""` | | `master.topologySpreadConstraints` | Topology Spread Constraints for Master Server pod assignment spread across your cluster among failure-domains | `[]` | | `master.schedulerName` | Name of the k8s scheduler (other than default) for Master Server pods | `""` | @@ -400,18 +400,21 @@ If you encounter errors when working with persistent volumes, refer to our [trou ### Master Server Persistence Parameters -| Name | Description | Value | -| ---------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------- | -| `master.persistence.enabled` | Enable persistence on Master Server using Persistent Volume Claims | `true` | -| `master.persistence.mountPath` | Path to mount the volume at. | `/data` | -| `master.persistence.subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` | -| `master.persistence.storageClass` | Storage class of backing PVC | `""` | -| `master.persistence.annotations` | Persistent Volume Claim annotations | `{}` | -| `master.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` | -| `master.persistence.size` | Size of data volume | `8Gi` | -| `master.persistence.existingClaim` | The name of an existing PVC to use for persistence | `""` | -| `master.persistence.selector` | Selector to match an existing Persistent Volume for data PVC | `{}` | -| `master.persistence.dataSource` | Custom PVC data source | `{}` | +| Name | Description | Value | +| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------- | +| `master.persistence.enabled` | Enable persistence on Master Server using Persistent Volume Claims | `true` | +| `master.persistence.mountPath` | Path to mount the volume at. | `/data` | +| `master.persistence.subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` | +| `master.persistence.storageClass` | Storage class of backing PVC | `""` | +| `master.persistence.annotations` | Persistent Volume Claim annotations | `{}` | +| `master.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` | +| `master.persistence.size` | Size of data volume | `8Gi` | +| `master.persistence.existingClaim` | The name of an existing PVC to use for persistence | `""` | +| `master.persistence.selector` | Selector to match an existing Persistent Volume for data PVC | `{}` | +| `master.persistence.dataSource` | Custom PVC data source | `{}` | +| `master.persistentVolumeClaimRetentionPolicy.enabled` | Controls if and how PVCs are deleted during the lifecycle of the Master Server StatefulSet | `false` | +| `master.persistentVolumeClaimRetentionPolicy.whenScaled` | Volume retention behavior when the replica count of the StatefulSet is reduced | `Retain` | +| `master.persistentVolumeClaimRetentionPolicy.whenDeleted` | Volume retention behavior that applies when the StatefulSet is deleted | `Retain` | ### Master Server Metrics Parameters @@ -488,7 +491,7 @@ If you encounter errors when working with persistent volumes, refer to our [trou | `volume.args` | Override default Volume Server container args (useful when using custom images) | `[]` | | `volume.automountServiceAccountToken` | Mount Service Account token in Volume Server pods | `false` | | `volume.hostAliases` | Volume Server pods host aliases | `[]` | -| `volume.statefulsetAnnotations` | Annotations for Volume Server statefulset | `{}` | +| `volume.statefulsetAnnotations` | Annotations for Volume Server StatefulSet | `{}` | | `volume.podLabels` | Extra labels for Volume Server pods | `{}` | | `volume.podAnnotations` | Annotations for Volume Server pods | `{}` | | `volume.podAffinityPreset` | Pod affinity preset. Ignored if `volume.affinity` is set. Allowed values: `soft` or `hard` | `""` | @@ -499,8 +502,8 @@ If you encounter errors when working with persistent volumes, refer to our [trou | `volume.affinity` | Affinity for Volume Server pods assignment | `{}` | | `volume.nodeSelector` | Node labels for Volume Server pods assignment | `{}` | | `volume.tolerations` | Tolerations for Volume Server pods assignment | `[]` | -| `volume.updateStrategy.type` | Volume Server statefulset strategy type | `RollingUpdate` | -| `volume.podManagementPolicy` | Pod management policy for Volume Server statefulset | `Parallel` | +| `volume.updateStrategy.type` | Volume Server StatefulSet strategy type | `RollingUpdate` | +| `volume.podManagementPolicy` | Pod management policy for Volume Server StatefulSet | `Parallel` | | `volume.priorityClassName` | Volume Server pods' priorityClassName | `""` | | `volume.topologySpreadConstraints` | Topology Spread Constraints for Volume Server pod assignment spread across your cluster among failure-domains | `[]` | | `volume.schedulerName` | Name of the k8s scheduler (other than default) for Volume Server pods | `""` | @@ -564,20 +567,23 @@ If you encounter errors when working with persistent volumes, refer to our [trou ### Volume Server Persistence Parameters -| Name | Description | Value | -| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -| `volume.dataVolumes[0].name` | Name of the data volume | `data-0` | -| `volume.dataVolumes[0].mountPath` | Path to mount the volume at. | `/data-0` | -| `volume.dataVolumes[0].subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` | -| `volume.dataVolumes[0].maxVolumes` | Max number of SeaweedFS volumes this data volume can be divided into. If set to 0, the limit will be auto configured as free disk space divided by default volume size (30GB) | `8` | -| `volume.dataVolumes[0].persistence.enabled` | Enable persistence on Volume Server using Persistent Volume Claims | `true` | -| `volume.dataVolumes[0].persistence.storageClass` | Storage class of backing PVC | `""` | -| `volume.dataVolumes[0].persistence.annotations` | Persistent Volume Claim annotations | `{}` | -| `volume.dataVolumes[0].persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` | -| `volume.dataVolumes[0].persistence.size` | Size of data volume | `8Gi` | -| `volume.dataVolumes[0].persistence.existingClaim` | The name of an existing PVC to use for persistence | `""` | -| `volume.dataVolumes[0].persistence.selector` | Selector to match an existing Persistent Volume for data PVC | `{}` | -| `volume.dataVolumes[0].persistence.dataSource` | Custom PVC data source | `{}` | +| Name | Description | Value | +| --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | +| `volume.dataVolumes[0].name` | Name of the data volume | `data-0` | +| `volume.dataVolumes[0].mountPath` | Path to mount the volume at. | `/data-0` | +| `volume.dataVolumes[0].subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` | +| `volume.dataVolumes[0].maxVolumes` | Max number of SeaweedFS volumes this data volume can be divided into. If set to 0, the limit will be auto configured as free disk space divided by default volume size (30GB) | `8` | +| `volume.dataVolumes[0].persistence.enabled` | Enable persistence on Volume Server using Persistent Volume Claims | `true` | +| `volume.dataVolumes[0].persistence.storageClass` | Storage class of backing PVC | `""` | +| `volume.dataVolumes[0].persistence.annotations` | Persistent Volume Claim annotations | `{}` | +| `volume.dataVolumes[0].persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` | +| `volume.dataVolumes[0].persistence.size` | Size of data volume | `8Gi` | +| `volume.dataVolumes[0].persistence.existingClaim` | The name of an existing PVC to use for persistence | `""` | +| `volume.dataVolumes[0].persistence.selector` | Selector to match an existing Persistent Volume for data PVC | `{}` | +| `volume.dataVolumes[0].persistence.dataSource` | Custom PVC data source | `{}` | +| `volume.persistentVolumeClaimRetentionPolicy.enabled` | Controls if and how PVCs are deleted during the lifecycle of the Volume Server StatefulSet | `false` | +| `volume.persistentVolumeClaimRetentionPolicy.whenScaled` | Volume retention behavior when the replica count of the StatefulSet is reduced | `Retain` | +| `volume.persistentVolumeClaimRetentionPolicy.whenDeleted` | Volume retention behavior that applies when the StatefulSet is deleted | `Retain` | ### Volume Server Metrics Parameters @@ -656,7 +662,7 @@ enabled = false | `filer.args` | Override default Filer Server container args (useful when using custom images) | `[]` | | `filer.automountServiceAccountToken` | Mount Service Account token in Filer Server pods | `false` | | `filer.hostAliases` | Filer Server pods host aliases | `[]` | -| `filer.statefulsetAnnotations` | Annotations for Filer Server statefulset | `{}` | +| `filer.statefulsetAnnotations` | Annotations for Filer Server StatefulSet | `{}` | | `filer.podLabels` | Extra labels for Filer Server pods | `{}` | | `filer.podAnnotations` | Annotations for Filer Server pods | `{}` | | `filer.podAffinityPreset` | Pod affinity preset. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard` | `""` | @@ -667,8 +673,8 @@ enabled = false | `filer.affinity` | Affinity for Filer Server pods assignment | `{}` | | `filer.nodeSelector` | Node labels for Filer Server pods assignment | `{}` | | `filer.tolerations` | Tolerations for Filer Server pods assignment | `[]` | -| `filer.updateStrategy.type` | Filer Server statefulset strategy type | `RollingUpdate` | -| `filer.podManagementPolicy` | Pod management policy for Filer Server statefulset | `Parallel` | +| `filer.updateStrategy.type` | Filer Server StatefulSet strategy type | `RollingUpdate` | +| `filer.podManagementPolicy` | Pod management policy for Filer Server StatefulSet | `Parallel` | | `filer.priorityClassName` | Filer Server pods' priorityClassName | `""` | | `filer.topologySpreadConstraints` | Topology Spread Constraints for Filer Server pod assignment spread across your cluster among failure-domains | `[]` | | `filer.schedulerName` | Name of the k8s scheduler (other than default) for Filer Server pods | `""` | diff --git a/bitnami/seaweedfs/templates/master/statefulset.yaml b/bitnami/seaweedfs/templates/master/statefulset.yaml index 2f01806f1f140f..22aa1180e8a075 100644 --- a/bitnami/seaweedfs/templates/master/statefulset.yaml +++ b/bitnami/seaweedfs/templates/master/statefulset.yaml @@ -305,6 +305,11 @@ spec: persistentVolumeClaim: claimName: {{ .Values.master.persistence.existingClaim }} {{- else }} + {{- if .Values.master.persistentVolumeClaimRetentionPolicy.enabled }} + persistentVolumeClaimRetentionPolicy: + whenDeleted: {{ .Values.master.persistentVolumeClaimRetentionPolicy.whenDeleted }} + whenScaled: {{ .Values.master.persistentVolumeClaimRetentionPolicy.whenScaled }} + {{- end }} volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim diff --git a/bitnami/seaweedfs/templates/volume/statefulset.yaml b/bitnami/seaweedfs/templates/volume/statefulset.yaml index dbc5ed24dbfb5d..3ba977a7724c8c 100644 --- a/bitnami/seaweedfs/templates/volume/statefulset.yaml +++ b/bitnami/seaweedfs/templates/volume/statefulset.yaml @@ -326,6 +326,11 @@ spec: claimName: {{ .persistence.existingClaim }} {{- end }} {{- end }} + {{- if .Values.volume.persistentVolumeClaimRetentionPolicy.enabled }} + persistentVolumeClaimRetentionPolicy: + whenDeleted: {{ .Values.volume.persistentVolumeClaimRetentionPolicy.whenDeleted }} + whenScaled: {{ .Values.volume.persistentVolumeClaimRetentionPolicy.whenScaled }} + {{- end }} volumeClaimTemplates: {{- range .Values.volume.dataVolumes }} {{- if and .persistence.enabled (not .persistence.existingClaim) }} diff --git a/bitnami/seaweedfs/values.yaml b/bitnami/seaweedfs/values.yaml index ab6b13da278753..4715463473bac9 100644 --- a/bitnami/seaweedfs/values.yaml +++ b/bitnami/seaweedfs/values.yaml @@ -338,7 +338,7 @@ master: ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: [] - ## @param master.statefulsetAnnotations Annotations for Master Server statefulset + ## @param master.statefulsetAnnotations Annotations for Master Server StatefulSet ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## statefulsetAnnotations: {} @@ -388,14 +388,14 @@ master: ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - ## @param master.updateStrategy.type Master Server statefulset strategy type + ## @param master.updateStrategy.type Master Server StatefulSet strategy type ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies ## updateStrategy: ## Can be set to RollingUpdate or OnDelete ## type: RollingUpdate - ## @param master.podManagementPolicy Pod management policy for Master Server statefulset + ## @param master.podManagementPolicy Pod management policy for Master Server StatefulSet ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies ## podManagementPolicy: Parallel @@ -756,6 +756,16 @@ master: ## @param master.persistence.dataSource Custom PVC data source ## dataSource: {} + ## persistentVolumeClaimRetentionPolicy + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention + ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Master Server StatefulSet + ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced + ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted + ## + persistentVolumeClaimRetentionPolicy: + enabled: false + whenScaled: Retain + whenDeleted: Retain ## @section Master Server Metrics Parameters ## @@ -978,7 +988,7 @@ volume: ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: [] - ## @param volume.statefulsetAnnotations Annotations for Volume Server statefulset + ## @param volume.statefulsetAnnotations Annotations for Volume Server StatefulSet ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## statefulsetAnnotations: {} @@ -1028,14 +1038,14 @@ volume: ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - ## @param volume.updateStrategy.type Volume Server statefulset strategy type + ## @param volume.updateStrategy.type Volume Server StatefulSet strategy type ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies ## updateStrategy: ## Can be set to RollingUpdate or OnDelete ## type: RollingUpdate - ## @param volume.podManagementPolicy Pod management policy for Volume Server statefulset + ## @param volume.podManagementPolicy Pod management policy for Volume Server StatefulSet ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies ## podManagementPolicy: Parallel @@ -1406,6 +1416,16 @@ volume: ## @param volume.dataVolumes[0].persistence.dataSource Custom PVC data source ## dataSource: {} + ## persistentVolumeClaimRetentionPolicy + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention + ## @param volume.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Volume Server StatefulSet + ## @param volume.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced + ## @param volume.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted + ## + persistentVolumeClaimRetentionPolicy: + enabled: false + whenScaled: Retain + whenDeleted: Retain ## @section Volume Server Metrics Parameters ## @@ -1630,7 +1650,7 @@ filer: ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: [] - ## @param filer.statefulsetAnnotations Annotations for Filer Server statefulset + ## @param filer.statefulsetAnnotations Annotations for Filer Server StatefulSet ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## statefulsetAnnotations: {} @@ -1680,14 +1700,14 @@ filer: ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - ## @param filer.updateStrategy.type Filer Server statefulset strategy type + ## @param filer.updateStrategy.type Filer Server StatefulSet strategy type ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies ## updateStrategy: ## Can be set to RollingUpdate or OnDelete ## type: RollingUpdate - ## @param filer.podManagementPolicy Pod management policy for Filer Server statefulset + ## @param filer.podManagementPolicy Pod management policy for Filer Server StatefulSet ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies ## podManagementPolicy: Parallel From d26cbfcaf9ab1ba169d2dafd76b2d44984151dac Mon Sep 17 00:00:00 2001 From: Bitnami Containers Date: Mon, 18 Nov 2024 11:48:00 +0000 Subject: [PATCH 2/2] Update CHANGELOG.md Signed-off-by: Bitnami Containers --- bitnami/seaweedfs/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bitnami/seaweedfs/CHANGELOG.md b/bitnami/seaweedfs/CHANGELOG.md index aab49be58ff304..a8fe8937410949 100644 --- a/bitnami/seaweedfs/CHANGELOG.md +++ b/bitnami/seaweedfs/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog +## 4.1.0 (2024-11-18) + +* [bitnami/seaweedfs] feat: add support for customizing PVC retention policies ([#30495](https://github.com/bitnami/charts/pull/30495)) + ## 4.0.0 (2024-11-12) -* [bitnami/seaweedfs] chore!: :arrow_up: :boom: Bump MariaDB subchart to 20 ([#30358](https://github.com/bitnami/charts/pull/30358)) +* [bitnami/seaweedfs] chore!: :arrow_up: :boom: Bump MariaDB subchart to 20 (#30358) ([1d471fd](https://github.com/bitnami/charts/commit/1d471fd9fae99cf2e3b9a6e2230b0102046193e7)), closes [#30358](https://github.com/bitnami/charts/issues/30358) ## 3.2.0 (2024-11-08)