Сама проблема
Получил реестр контейнеров Azure как хранилище изображений и диаграмм. Предположим, что это myacr.azurecr.io
с 8 нажатыми различными диаграммами. Насколько я читал ранее, Azure ACR может хранить диаграммы и совместим с Helm 3 (версия 3.5.2).
Воспроизвести следующие шаги очень просто.
helm repo add myacr https://myacr.azurecr.io/helm/v1/repo --username myusername -password admin123
— добавлено репо. OK.helm chart save ./my-chart/ myacr.azurecr.io/helm/my-chart:1.0.0
— график сохранен. Okhelm push ./my-chart/ myacr.azurecr.io/helm/my-chart:1.0.0
— нажал. Доступно на портале Azure. OK.helm repo update
— что здесь могло пойти не так? Как и ожидалось. Ok
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "myacr" chart repository
Update Complete. ⎈Happy Helming!⎈
helm search repo -l
— я вижу все изingress-nginx
иjetstack
, но ничего изmyacr
в списке. Но если я делаюpull
иexport
, все работает нормально — диаграмма на месте
Что я пробовал
- переименование имени репо в helm / {app} в соответствии с некоторыми теориями в сети — неудача
- схема перенастройки с полными описаниями и т. д. по
ingress-nginx
— неуспешно - выполнение
helm search repo -l --devel
, чтобы увидеть все возможные версии графиков — не повезло - Отключение и повторное включение — удаление и повторное добавление репо с разными комбинациями — сбой
- явный сленг при каждой попытке — немного нагревает, но не решает проблему
Вопросы
- Полностью ли Azure ACR совместим с Helm 3?
- Есть ли какое-то конкретное решение, чтобы сделать его совместимым с Helm 3?
- Есть ли у функции поиска какие-либо требования к структуре или версии диаграммы?
Таким образом, похоже, что helm search
извлекает файл index.yaml из удаленного репо, сохраняет его локально (в ~ / .cache / helm / repository) и выполняет поиск на основе сохраненного файла индекса. Похоже, helm chart push
НЕ обновляет index.yaml. Из того, что я прочитал в документации по новым OCI-совместимым репозиториям helm, похоже, что они полностью уходят от файлов index.yaml. — person Artem Fomin schedule 10.03.2021
Это объясняет, почему поиск helm не работает таким образом, но работает, когда вы выполняете az acr helm push
(потому что az cli явно регенерирует index.yaml). — person Artem Fomin schedule 10.03.2021
Вместо этого новый поиск helm должен будет проверять ~ / .cache / helm / registry / cache / index.json. — person Artem Fomin schedule 10.03.2021
Да, он полностью совместим с Helm 3.
Ничего не нужно делать, потому что первый вопрос — да.
Сначала вам нужно добавить репо в локальный штурвал с помощью команды
az acr helm repo add --name myacr
илиhelm repo add myacr https://myacr.azurecr.io/helm/v1/repo --username xxxxx --password xxxxxx
, а затем вы получите такой вывод, выполнив командуhelm search repo -l
:А локальное репо выглядит так:
Моя проблема — не упомянул рассматриваемый шаг (отредактирую), но, конечно, я добавил репо. После этого ответ удалил его и добавил с учетными данными и без. По-прежнему пустой список графиков именно из этого. Я вижу все диаграммы от
ingress-nginx
иjetstack
. Также попробовалhelm search repo -l --devel
включить все существующие версии. Не повезло, но все равно спасибо — person Artem Fomin; 10.03.2021@ArtemFomin Как вы помещаете графики в ACR? Используете ли вы Azure CLI и проверяете ли ACR, если в нем уже есть диаграммы? — person Artem Fomin; 10.03.2021
Неа. Нет Azure CLI. Только с помощью инструментов Helm.
helm save ..
, затемhelm push ...
, как описано — person Artem Fomin; 10.03.2021@ArtemFomin Вы проверяете, есть ли графики в ACR? — person Artem Fomin; 10.03.2021
Конечно. Они находятся в ACR на портале Azure, и ACR распознает их как диаграммы Helm. — person Artem Fomin; 10.03.2021
@ArtemFomin Можете ли вы поделиться скриншотами ваших графиков в ACR и репозиториев в вашем регионе? Может, команда
az acr helm list --name myacr
поможет. — person Artem Fomin; 10.03.2021Поделился снимком экрана в первоначальном вопросе.
az acr helm list --name myacr
возвращает пустой список и снова предупреждает, чтоThis command is implicitly deprecated because command group 'acr helm' is deprecated and will be removed in a future release. Use 'helm v3' instead
— person Artem Fomin; 10.03.2021@ArtemFomin Это означает, что графика не существует в ACR. Вы можете использовать команду
az acr helm push --name myacr example.tgz
tp для перемещения графика в ACR. Затем выполните поиск по карте с помощью команды helm. И попробуйте обновить репо командойhelm repo update
. — person Artem Fomin; 10.03.2021Как упоминалось выше
command group 'acr helm' is deprecated
, поэтому, даже если он скоро поможет, он будет удален и имеет смысл понять, почему CLI Helm 3 не работает так, как ожидалось. На самом деле конвейер работает — я просто извлекаю и экспортирую диаграмму, а затем использую ее как файл, но чистый способ — установить ее прямо из ACR, не играя с временными решениями. — person Artem Fomin; 10.03.2021@ArtemFomin Вы можете понять пример здесь просто используйте ACR как репозиторий для хранения диаграммы, и он отличается от репозитория диаграмм. Вы можете использовать параметр
--debug
после командыaz acr helm push
, чтобы увидеть разницу. Возможно, позже Azure заставит его работать только с командой Helm, но теперь это работает, как я сказал. — person Artem Fomin; 10.03.2021@ArtemFomin Есть новости по этому вопросу? — person Artem Fomin; 12.03.2021
Не совсем. Согласно статье MS эта функция в настоящее время не включен в ACR. Служба поддержки MS говорит то же самое — person Artem Fomin; 18.03.2021
@ArtemFomin Итак, я даю правильный ответ. Если вы не против, пожалуйста, примите это. — person Artem Fomin; 19.03.2021