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
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
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 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
kubectl get helmrelease/<name> -n <namespace> -o yaml | yq .spec.values -y | helm upgrade -i <release name> -f - <chart>
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!