How to use --wait with post-install hook in helm?

2/17/2020

I use an install script in a post-install hook. When I run helm install with --wait option, helm waits that all pods are ready, but helm does not launch post-install hooks script. Then, the pods are not yet ready (pods are waiting for install script to finish).

I tried with pre-install hook instead, but the install script needs other services to be running...

PS: it works fine if I don't use "--wait", but CI from gitlab won't fail if there is an error during pod startups.

Is there a way to run the post-install hooks during the helm install --wait period?

-- Vincent J
kubernetes-helm

1 Answer

2/17/2020

I don't think you can solve your problem with Helm post-install hook, but you may with vanilla Kubernetes jobs or perhaps hooks, i.e. running job/hook along with your deployment that will depend only on Kubernetes.

One of the first things to try is to remove helm.sh/hook annotations from your existing job.

  annotations:
    # This is what defines this resource as a hook. Without this line, the
    # job is considered part of the release.
    "helm.sh/hook": post-install
    "helm.sh/hook-weight": "-5"
    "helm.sh/hook-delete-policy": hook-succeeded

Helm can then wait for them to finish as they will be executed by Kubernetes.

-- Filip Nikolov
Source: StackOverflow