Сама проблема
Получил реестр контейнеров 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 — график сохранен. Ok
- helm 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
Источник: