Helm v3 Deployment Fails (with not found error)

New users have who are trying to run a Helm3 deployment, may come across this error,

INFO 2020-01-01 11:00:00 helm template release-ba7dd65d-4a7e-3d09-9c41-ec250f88adf0 /opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files --namespace default -f values-0.yaml -f values-1.yaml -f values-2.yaml
** ERROR 2020-01-01 11:00:00 ProcessInitException: Could not execute [helm, template, release-ba7dd65d-4a7e-3d09-9c41-ec250f88adf0, /opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files, --namespace, default, -f, values-0.yaml, -f, values-1.yaml, -f, values-2.yaml] in /opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files. Error=2, No such file or directory**

This message is confusing and implies something that is not true. Let’s start with the error message,

** Error=2 No such file or directory,**

The question is which file it cannot find? The error would imply,

/opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files

which would be incorrect. The key is what it is trying to do,

Could not execute [helm, template, release-ba7dd65d-4a7e-3d09-9c41-ec250f88adf0, /opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files, --namespace, default, -f, values-0.yaml, -f, values-1.yaml, -f, values-2.yaml]

It is saying it is trying to run the command,

helm template release-ba7dd65d-4a7e-3d09-9c41-ec250f88adf0, /opt/harness-delegate/repository/k8s/29da2941-0163-393c-91fd-a1b71a96ac61/manifest-files --namespace default -f values-0.yaml -f values-1.yaml -f values-2.yaml

It cannot find the helm binary

A couple of possibilities why the helm were not found can be,

  1. The binary is not installed in a publicly available location (like /usr/bin or /usr/local/bin).
  2. The delegate configuration, uses the helmPath variable to locate the helm binary
  3. If there is no helmPath variable the binary that is included with the delegate is used and that could also be missing.
2 Likes