Небольшая заметка про oci registry и хранения всякого внутри. Для начала давайте разберемся, что такое OCI.
OCI - это Open Container Initiative и эта организация занимается “описыванием/написанием” правил игры для разработки cloud native продуктов.
Иииии OCI реджестри как раз и использую стандарт организации.
В рамках реджестри мы подразумеваем хранение докер образов, НО если реджестри OCI совмести (назовем это так), в реджестри можно хранить хельм чарты и !!!ВНИМАНИЕ!!! файлы (файлы в дальнейшем будут называться артифактами)
Если докер образами все понятно, с хельм чартами есть некоторые различия между реждестри:
— в “дефолтном” реджестри для хранения создается индексный файл в котором описывается содержимое хельм реджестри
— в OCI совместимом его нет и формат взаимодействия отличается, например
helm pull oci://cr.yandex/myregistry/charts/chart-name --version 0.0.1
Что там и причем тут файлы? А разбираться я начал, когда пошел реконфигурировать Trivy по мотивам вот этой истории
Выполнив стандартный докер пул из реджестри я получил ошибку
unsupported media type application/vnd.oci.empty.v1+json
И пошел разбираться. Оказалось, что Trivy хранит свои базы в условновном докер реджестри и это не просто докер образ, а просто файл, что уже интересно.
Для того что бы все таки получить “файлик” мы можем использовать oras
Выполнив команду
oras pull registry-1.docker.io/aquasec/trivy-db:2
Мы успешно скачаем последнюю доступную базу Trivy
Кстати говоря, если у вас уже есть harbor для dockerhub настроенный в режиме кэширующего прокси, он будет из коробки проксировать и артифакты =)