Артефакты в Artifact Registry хранятся в репозиториях. Каждый репозиторий содержит артефакты только одного типа.
Artifact Registry позволяет хранить в репозитории следующие артефакты:
Docker-образ — шаблон для создания Docker-контейнеров. Образ содержит все необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные окружения и файлы конфигурации.
Сервис поддерживает спецификацию Docker Registry HTTP API V2.
Управление Docker-образами в Artifact Registry осуществляется с помощью тегов и дайджестов.
Тег присваивается пользователем при загрузке образа в репозиторий.
Тег должен быть уникальным в пределах одного репозитория. Тег будет удален со старого образа и присвоен новому при загрузке образа с уже существующим в репозитории тегом. При этом старый образ останется в репозитории, но не будет иметь тега. Работать с такими образами можно с помощью дайджеста.
Дайджест генерируется автоматически при создании образа. Дайджест уникален для каждого Docker-образа в репозитории.
Теги и дайджесты образов доступны в личном кабинете, в разделе Репозитории → Артефакты.
Ниже примеры использования тега и дайджеста при скачивании образа.
Скачать образ по тегу:
docker pull <registry_name>.cr.cloud.ru/<repository_name>:<tag>
Скачать образ по дайджесту:
docker pull <registry_name>.cr.cloud.ru/<repository_name>@sha256:432f982638b3aefab73cc58ab28f5c16e96fdb504e8c134fc58dff4bae8bf338
В репозитории Artifact Registry образы для Windows-контейнеров хранятся аналогично Docker-образам.
Для работы с образами для Windows-контейнеров в Artifact Registry нужно предварительно настроить конфигурационный файл Docker Daemon.
Helm-чарт — менеджер пакетов с открытым исходным кодом, который используется для упрощения развертывания приложений Kubernetes.
В репозитории Artifact Registry Helm-чарты хранятся аналогично Docker-образам. Поддерживаются версии Helm-чартов от 3.8.0 и выше.
Подробнее о Helm-чартах — в официальной документации Helm.
Deb-пакет — это формат пакета для операционных систем на основе Debian, содержащий бинарный файл с программой и конфигурационный файл.
В репозитории Artifact Registry поддерживаются только deb-пакеты с бинарными файлами для конкретной архитектуры. Пакеты deb-src, содержащие исходный код, а также мультиархитектурные пакеты не поддерживаются.
Подробнее о deb-пакетах — в официальной документации Debian.
RPM-пакет — это формат пакета для операционных систем на основе Red Hat Linux, содержащий бинарный файл с программой и конфигурационный SPEC-файл.
В семейство систем на основе Red Hat Linux входят, например:
Red Hat Enterprise Linux
Fedora
CentOS
OpenSUSE
В репозитории Artifact Registry поддерживаются RPM-пакеты любой архитектуры, в том числе RPM-пакеты, не относящиеся к конкретной архитектуре (*.noarch.rpm). SRPM-пакеты, содержащие исходный код программы, не поддерживаются.
Подробнее о RPM-пакетах — в официальной документации RPM.
PyPI-пакет (от Python Package Index — каталог пакетов Python) — это формат пакета для языка программирования Python. PyPI-пакеты могут содержат бинарный файл с программой (WHL-файл) и исходный код (TAR.GZ-файл).
В репозитории Artifact Registry поддерживаются пакеты любой архитектуры и формата.
При загрузке файла WHL с любым именем сервис Artifact Registry генерирует имя файла по следующему шаблону: <distribution>-<version>-<python tag>-<abi tag>-<platform tag>.whl,
Где:
<distribution> — имя пакета из поля name в метаданных. Используется латиница a-z/A-Z, цифры 0-9, точка, дефис или нижнее подчеркивание. Имя не может начинаться и заканчиваться точкой или содержать две точки подряд.
<version> — версия библиотеки.
<python tag> — версия Python, например «py27», «cp33».
<abi tag> — тег двоичного интерфейса приложений, например «cp32dmu», «none».
<platform tag> — платформа, для которой предназначен пакет, например «win32», «linux_x86_64».
При загрузке архива TAR.GZ сервис Artifact Registry формирует имя файла по следующему шаблону tar.gz <distribution>-<version>.tar.gz,
Где:
<distribution> — имя пакета из поля name в метаданных. Используется латиница a-z/A-Z, цифры 0-9, точка, дефис или нижнее подчеркивание. Имя не может начинаться и заканчиваться точкой или содержать две точки подряд.
<version> — версия библиотеки.
Пакеты с одинаковым именем и разными версиями при загрузке будут помещены в один репозиторий.
Generic-файлы — это файлы любого типа, в том числе:
архивы (tar, zip файлы);
конфигурационные файлы (YAML, TOML);
бинарные файлы и исполняемые модули;
медиафайлы различных форматов.
В репозитории Artifact Registry поддерживаются Generic-файлы. Для реестров типа Generic отсутствуют ограничения на формат и имя файла. Ограничение на размер файла — 1024 MB.
Пользователям доступны операции загрузки (push) и скачивания (pull) артефактов. Загрузка и скачивание артефактов доступны пользователям с соответствующими правами.
Для операций с артефактами необходимо пройти аутентификацию. Если артефакт размещен в публичном реестре, то скачать артефакт без аутентификации может любой пользователь, знающий команду скачивания.