charts icon indicating copy to clipboard operation
charts copied to clipboard

upgrading to chart 12.x forces a full replacement of the statefulset

Open ilexPar opened this issue 3 years ago • 4 comments

Is this a request for help?:

No


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

Version of Helm and Kubernetes: Helm v3, Kubernetes v1.17

Which chart:

jfrog/artifactory

What happened: Since chart 12.0 the StatefulSet has been renamed, this prompts for a full replacement of the current one. AFAIK this will also replace the PV created from volumeClaimTemplates

What you expected to happen: Be able to perform a helm upgrade without fully replacing current StatefulSet

How to reproduce it (as minimally and precisely as possible): Upgrade a 11.x.x chart installation to a 12.x.x one

ilexPar avatar May 14 '21 19:05 ilexPar

Hi @ilexPar We hope the StatefulSet change which you are referring to here is with the postgres dependent chart which comes with artifactory.

If so this is happening due to the breaking changes in the Postgres charts as we have upgraded the dependency chart version in 12.0.0 and please find more details about it in our changelog

Kindly let us know if have misunderstood your question or any further clarifications are required.

shahiinn avatar May 17 '21 06:05 shahiinn

Hi @shahiinn,

Actually I'm referring to the main artifactory statefulset. After some tries I've noticed the issue seems to be introduced after this lines.

Thank you for the fast response btw

ilexPar avatar May 17 '21 15:05 ilexPar

@ilexPar Could you please try with --set fullnameOverride=<existing-statefulset name> and see if you face any issues.

rahulsadanandan avatar May 18 '21 05:05 rahulsadanandan

Hi all

The same happens on my side. I also tryed with --set fullnameOverride=<existing-statefulset name>, but there is no difference. Here is a small abstract of the helm upgrade --dry-run to compare the two versions of the chart.

helm upgrade artifactory-cpp-ce jfrog/artifactory-cpp-ce --version 107.19.8 -f artifactory.yaml --set databaseUpgradeReady=true --dry-run

Release "artifactory-cpp-ce" has been upgraded. Happy Helming!
NAME: artifactory-cpp-ce
LAST DEPLOYED: Tue Jun 15 13:16:36 2021
NAMESPACE: default
STATUS: pending-upgrade
REVISION: 57
TEST SUITE: None
HOOKS:
MANIFEST:
---
# Source: artifactory-cpp-ce/charts/artifactory/templates/artifactory-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: artifactory-cpp-ce
  labels:
    app: artifactory
    chart: artifactory-107.19.8
    component: artifactory
    heritage: Helm
    release: artifactory-cpp-ce


---
# Source: artifactory-cpp-ce/charts/artifactory/templates/artifactory-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: artifactory-cpp-ce
  labels:
    app: artifactory
    chart: artifactory-107.19.8
    component: artifactory
    heritage: Helm
    release: artifactory-cpp-ce
    databaseUpgradeReady: "yes"

and the old version:

helm upgrade artifactory-cpp-ce jfrog/artifactory-cpp-ce --version 3.8.0 -f artifactory.yaml --dry-run > dry_run2.yaml

Release "artifactory-cpp-ce" has been upgraded. Happy Helming!
NAME: artifactory-cpp-ce
LAST DEPLOYED: Tue Jun 15 12:42:47 2021
NAMESPACE: default
STATUS: pending-upgrade
REVISION: 57
TEST SUITE: None
HOOKS:
MANIFEST:
---
# Source: artifactory-cpp-ce/charts/artifactory/templates/artifactory-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: artifactory-cpp-ce-artifactory
  labels:
    app: artifactory
    chart: artifactory-11.13.0
    component: artifactory
    heritage: Helm
    release: artifactory-cpp-ce


---
# Source: artifactory-cpp-ce/charts/artifactory/templates/artifactory-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: artifactory-cpp-ce-artifactory
  labels:
    app: artifactory
    chart: artifactory-11.13.0
    component: artifactory
    heritage: Helm
    release: artifactory-cpp-ce
    databaseUpgradeReady: "yes"

As you can see on the old deployment, the names are 'ReleaseName-CharName' and on the new deployment it looks like only the 'ReleaseName' is used. Is this releated to the changes in the _helpers.tpl as mention above?

My system is: Kubernetes 1.17.7 Helm v3.2.4

sct2010 avatar Jun 15 '21 13:06 sct2010