jfrog / charts

JFrog official Helm Charts
https://jfrog.com/integration/helm-repository/
Apache License 2.0
259 stars 448 forks source link

PersistentVolumeClaim size cannot be increased via Statefullset #1888

Closed ricardojdsilva87 closed 3 months ago

ricardojdsilva87 commented 5 months ago

Is this a request for help?: Yes


Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT

Version of Helm and Kubernetes: k8s 1.27

Which chart: artifactory-ha

Which product license (Enterprise/Pro/oss): Enterprise

JFrog support reference (if already raised with support team):

What happened: Using the statefullset to manage a PV/PVC is very limited since most of the fields of the statefullset cannot be updated. Every time we need to change anything related to the PVC we need to delete the statefullset and all the replicas are deleted bringing the service down. Also updating the value of the storage via the helm chart does not update the size of the PVC, even after deleting and creating the STS again. In the following pictures we have the difference that ArgoCD is detecting: image And the error returned by Kubernetes image

The only workaround we have at the moment is the following:

This way Artifactory will have in the configuration the needed storage and will be adjusted to the manual changes on the PVC done in the cluster

The Storageclass associated allows volume expansion

What you expected to happen: Artifactory should automatically modify the needed PVC settings to adjust the size of the storage. Maybe having a separate PVC manifest that could be updated instead of having it embeded in the STS?

How to reproduce it (as minimally and precisely as possible): Modify the chart key artifactory.persistence.size to any value different to the one first deployed

Anything else we need to know: Maybe this issue is related: https://github.com/jfrog/charts/issues/1265

Thanks!

robin-wayve commented 5 months ago

I think this is mostly an upstream issue in Kubernetes: https://github.com/kubernetes/enhancements/pull/4651

gitta-jfrog commented 3 months ago

Each Cloud provider has is own method to increase the PVC size after the deployment already took place.

ricardojdsilva87 commented 3 months ago

Hello @gitta-jfrog , I believe that this is a Kubernetes "issue" in the Statefulset itself like @robin-wayve mentioned. The error we see is related to the change on the statefullset level. We have several PV and PVC created separatedely on kubernetes working correctly on AWS (it would work the same in GCP or Azure). This would be solvable if the PVCs were not binded to the Statefullset template but in a separate template. Not sure how to achieve this though trought helm