Upgrade Advisory
This documentation is for Flux (v1) and Helm Operator (v1). Both projects are in maintenance mode and will soon reach end-of-life. We strongly recommend you familiarise yourself with the newest Flux and start looking at your migration path.
For documentation regarding the latest Flux, please refer to this section.
Debugging
Even after having read everything this guide has to offer it is possible that a
HelmRelease
fails and you want to debug it to get to the cause. This may be
a bit harder at first than you were used to while working with just helm
because you are no longer in direct control but the Helm Operator is doing the
work for you.
This last section of the guide will give you some pointers on how to debug a
failing HelmRelease
resource.
Getting the reason of failure
If a release fails the reason of failure will be logged in the Helm Operator’s
logs and recorded as a condition on the HelmRelease
resource. You can view
this condition by describing the HelmRelease
resource using kubectl
:
$ kubectl describe -n <namespace> helmrelease/<name>
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ReleaseSynced 55s helm-operator managed release 'default-podinfo-0' in namespace 'default' synchronized
Warning FailedReleaseSync 18s helm-operator synchronization of release 'default-podinfo-0' in namespace 'default' failed: upgrade failed: "" is invalid: patch: [...]
In case of a release upgrade failure, the error as returned by Helm will be
recorded in the message of FailedReleaseSync
. If this does not give a
conclusive answer the logs will likely contain more information about what
happened during the release process:
kubectl logs deploy/flux-helm-operator
Manually performing a release to debug
When describing the HelmRelease
and the logs did not give any clues, it may
help to perform the release manually using the same values as specified in the
HelmRelease
resource. When no .valuesFrom
are defined, this can be done
by making use of
yq
(an extension to jq
)
and kubectl
:
kubectl get helmrelease/<name> -n <namespace> -o yaml | yq .spec.values -y | helm upgrade -i <release name> -f - <chart>
Getting help
If you still have any questions about the Helm Operator:
- Invite yourself to the CNCF community slack and ask a question on the #flux channel.
- To be part of the conversation about Helm Operator’s development, join the flux-dev mailing list.
- File an issue.
Your feedback is always welcome!