crossplane-contrib/provider-helm

Status ignores unfinished upgrades

ksawerykarwacki opened this issue · 3 comments

What happened?

When you change values or chart version sync/ready statuses stay True even before helm is upgraded. It means that there is no way to trace status on upgrades as helm provider does not change status so whole parent composition stays as Ready even if multiple charts are upgrading.

How can we reproduce it?

  1. Deploy helm chart using composition and passing values/version as composition parameter.
  2. Change values on composition/claim
  3. Observe status of composition/claim

Same issue when using directly release kind, after updating the status block reports condition of previous release. It is impossible to use kubectl wait --for=condition=complete as the command will instantly return with the completion from previous release.

Even programmatically there are not enough data in the type Release to know if new version is successful.
As the revision number in the status only gets updated when it reached some state on the helm side, which takes time.
Possible solution is to reset the status on new version sync.

@Rakhmanov that would be also my preferred solution. To keep sync set to true and set ready to false until release finishes deploying.

@turkenh any chance to fix that? It is impossible to trace updates currently without some hacky way to trace revision hash as part of connection secret. Reset of ready condition to false seems to be sufficient for most of the cases.