Troubleshooting

    You can run the following command to fix your repository:

    The same goes for the incubator repository, which has an archive available at https://charts.helm.sh/incubator. You can run the following command to repair it:

    1. $ helm repo add incubator https://charts.helm.sh/incubator --force-update

    I am getting the warning ‘WARNING: “kubernetes-charts.storage.googleapis.com” is deprecated for “stable” and will be deleted Nov. 13, 2020.’

    The old Google helm chart repository has been replaced by a new Helm chart repository.

    Run the following command to permanently fix this:

    If you get a similar error for incubator, run this command:

    1. $ helm repo add incubator https://charts.helm.sh/incubator --force-update

    When I add a Helm repo, I get the error ‘Error: Repo ““ is no longer available’

    The Helm Chart repositories are no longer supported after a year-long deprecation period. Archives for these repositories are available at https://charts.helm.sh/stable and https://charts.helm.sh/incubator, however they will no longer receive updates. The command helm repo add will not let you add the old URLs unless you specify --use-deprecated-repos.

    Another variation of the error message is:

    1. Unable to connect to the server: x509: certificate signed by unknown authority

    The issue is that your local Kubernetes config file must have the correct credentials.

    When you create a cluster on GKE, it will give you credentials, including SSL certificates and certificate authorities. These need to be stored in a Kubernetes config file (Default: ) so that kubectl and helm can access them.

    After migration from Helm 2, helm list shows only some (or none) of my releases

    It is likely that you have missed the fact that Helm 3 now uses cluster namespaces throughout to scope releases. This means that for all commands referencing a release you must either:

    • specify the correct namespace using the --namespace/-n flag, or
    • for the helm list command, specify the --all-namespaces/-A flag

    On macOS, the file /etc/.mdns_debug is accessed. Why?

    We are aware of a case on macOS where Helm will try to access a file named /etc/.mdns_debug. If the file exists, Helm holds the file handle open while it executes.

    This is caused by macOS’s MDNS library. It attempts to load that file to read debugging settings (if enabled). The file handle probably should not be held open, and this issue has been reported to Apple. However, it is macOS, not Helm, that causes this behavior.

    If you do not want Helm to load this file, you may be able to compile Helm to as a static library that does not use the host network stack. Doing so will inflate the binary size of Helm, but will prevent the file from being open.

    This issue was originally flagged as a potential security problem. But it has since been determined that there is no flaw or vulnerability caused by this behavior.

    In helm 3.3.1 and before, the command will give no output if you attempt to add a repo which already exists. The flag --no-update would raise an error if the repo was already registered.

    In helm 3.3.2 and beyond, an attempt to add an existing repo will error:

    Error: repository name (reponame) already exists, please specify a different name

    The default behavior is now reversed. --no-update is now ignored, while if you want to replace (overwrite) an existing repo, you can use --force-update.

    This is due to a breaking change for a security fix as explained in the .

    Enabling Kubernetes client logging

    Printing log messages for debugging the Kubernetes client can be enabled using the flags. Using the -v flag to set verbosity level will be enough for most cases.

    Tiller installations stopped working and access is denied

    Helm releases used to be available from . As explained in “Announcing get.helm.sh”, the official location changed in June 2019. makes all the old Tiller images available.

    If you are trying to download older versions of Helm from the storage bucket you used in the past, you may find that they are missing:

    1. <Error>
    2. <Code>AccessDenied</Code>
    3. <Message>Access denied.</Message>
    4. <Details>Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.</Details>

    The legacy Tiller image location began the removal of images in August 2021. We have made these images available at the location. For example, to download version v2.17.0, replace:

    https://storage.googleapis.com/kubernetes-helm/helm-v2.17.0-linux-amd64.tar.gz

    with:

    https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz

    To initialize with Helm v2.17.0:

    helm init —upgrade

    Or if a different version is needed, use the —tiller-image flag to override the default location and install a specific Helm v2 version:

    helm init --tiller-image ghcr.io/helm/tiller:v2.16.9

    Prev← Uninstalling