Назад | Перейти на главную страницу

A chart install (or helm_release via terraform) always results in “failed to download <chart>”</chart>

При установке helm диаграмму напрямую (с помощью штурвала 3) или с помощью helm поставщик в terraformвыдается та же ошибка, что означает сбой загрузки, например:

Error: failed to download "https://agones.dev/chart/stable/agones-1.7.0.tgz" (hint: running `helm repo update` may help)

Запуск обновления репо не имеет никакого эффекта, равно как и удаление кеша, попытки другого выпуска, разные версии Helm 3. Однако wget (или аналогичный) не имеет проблем с получением диаграммы, и содержимое диаграммы выглядит правильно, и даже устанавливается при запуске как локальный файл, а не при удаленной загрузке.

Однако это нельзя использовать в качестве обходного пути в случае чего-то вроде helm поставщик в terraform, который ожидает репозиторий и не принимает file:// как протокол для этого определения. Как это исправить навсегда, чтобы с терраформом снова "просто работало"?

Ошибку здесь очень сложно отладить в Terraform но тот факт, что это не удается при прямой установке, позволяет получить дополнительную информацию, добавив --debug флаг к команде:

helm --debug install agones https://agones.dev/chart/stable/agones-1.7.0.tgz -n agones-system

Теперь ошибка стала более подробной, и причина стала очевидной:

Error: no cached repo found. (try 'helm repo update'): open ~/.cache/helm/repository/local-index.yaml: no such file or directory

Локальный кеш, как определено в ~/.config/helm/repositories.yaml пропал, отсутствует. Вероятная причина этого - helm Обновление с v2 до v3 или, возможно, ошибка в начальной конфигурации репозитория, ее можно исправить, создав файл следующим образом:

cp ~/.helm/repository/local/index.yaml ~/.cache/helm/repository/local-index.yaml

После копирования файла все операции управления должны вернуться в нормальное состояние. Если по какой-либо причине у вас нет копии файла, его очень легко создать с нуля, вот как выглядело мое содержимое:

apiVersion: v1
entries: {}
generated: "2020-07-14T18:21:24.471657624+01:00"

Просто создайте файл вручную с соответствующей отметкой времени, и ваши ошибки должны исчезнуть.

Примечание: изначально был дан ответ Вот (я тоже), добавив в ServerFault для облегчения обнаружения