Container Registry
Приватный реестр Docker-образов и Helm-чартов — создание, логины, push и pull, подключение к Kubernetes.
Container Registry хранит Docker-образы и Helm-чарты (OCI) проекта. Адрес реестра — cr.h3llo.cloud.
Создание реестра
«Создать реестр» → «Новый реестр»:
- Имя — 3–30 символов: строчные латинские буквы, цифры, дефис; имя
libraryзарезервировано. - Объём — потолок занятого места: 10, 50 или 200 ГБ. Оплачивается фактически занятое место, а не потолок.
- Размещение — «Общий».
Полный адрес реестра вида cr.h3llo.cloud/<префикс>-<имя> показан в консоли — используйте его в командах ниже.
Логины
Вкладка «Доступ» → «Логины для docker login и Kubernetes». Права:
- Запись и чтение — для CI и разработчиков;
- Только чтение — для кластеров и серверов.
До 20 логинов на реестр. Пароль показывается один раз; «Сменить пароль» выдаёт новый. Имя логина содержит символ
$ — берите его в одинарные кавычки.
Push и pull
echo "$CR_PASSWORD" | docker login cr.h3llo.cloud -u '<логин>' --password-stdin
docker tag my-app:1.0 <адрес реестра>/my-app:1.0
docker push <адрес реестра>/my-app:1.0
docker pull <адрес реестра>/my-app:1.0Helm-чарты:
helm registry login cr.h3llo.cloud -u '<логин>'
helm push my-chart-0.1.0.tgz oci://<адрес реестра>GitLab CI
build:
image: docker:27
services: [docker:27-dind]
script:
- echo "$CR_PASSWORD" | docker login cr.h3llo.cloud -u "$CR_USER" --password-stdin
- docker build -t "$CR_ADDRESS/my-app:$CI_COMMIT_SHORT_SHA" .
- docker push "$CR_ADDRESS/my-app:$CI_COMMIT_SHORT_SHA"CR_USER, CR_PASSWORD и CR_ADDRESS задайте в переменных CI/CD (пароль — как masked).
Kubernetes
В один клик. На карточке реестра — «Кластеры» → «Подключить к кластеру» (или «Реестры» на карточке кластера).
Платформа создаст логин только для чтения, секрет h3-cr-<реестр> в выбранных namespace и добавит его в
imagePullSecrets выбранных сервис-аккаунтов. Namespace и сервис-аккаунты должны уже существовать.
Вручную:
kubectl -n <namespace> create secret docker-registry h3-cr-<реестр> \
--docker-server=cr.h3llo.cloud --docker-username='<логин>' --docker-password='<пароль>'
kubectl -n <namespace> patch serviceaccount default \
-p '{"imagePullSecrets":[{"name":"h3-cr-<реестр>"}]}'Настройки реестра
- правила хранения тегов и неизменяемые теги;
- сканирование образов на уязвимости при загрузке;
- вебхуки (до 10 на реестр) на загрузку, удаление и сканирование.
Образы без тега тоже занимают место. При финансовой блокировке загрузка образов закрывается, скачивание работает.
Оплачиваются занятое место (после дедупликации слоёв) и исходящий трафик — см. тарифы.
Цены
Цены Container Registry и что входит в стоимость — в разделе Цены и тарификация.