Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Модуль позволяет получать информацию о содержимом хранилища образов контейнеров с использованием Kubernetes API. Для этого можно использовать Deckhouse CLI (d8) или kubectl.
Поддерживаются следующие возможности:
- получение списка тегов в репозиториях хранилища образов, привязанных к неймспейсу;
- получение детальной информации по каждому тегу;
- удаление тегов (в том числе автоматически при удалении неймспейса).
Все привязанные к неймспейсу теги удаляются из хранилища образов при удалении самого неймспейса.
Все операции выполняются с использованием виртуального типа объектов Kubernetes payloadrepositorytags.payload-registry.deckhouse.io (PayloadRepositoryTag). Эти объекты нельзя создать или изменить с использованием Kubernetes API. Они отображают содержимое хранилища образов контейнеров.
RBAC для объектов PayloadRepositoryTag также не настраивается — они доступны для всех аутентифицированных пользователей. Права доступа для этих объектов настраиваются с использованием объектов PayloadRepositoryAccess (подробнее — в разделе «RBAC и PayloadRepositoryAccess»).
Все указанные ниже примеры команд подразумевают, что вы выполняете их от имени пользователя с необходимыми правами.
Получение информации о тегах
Для получения информации о тегах используйте команду:
d8 k get payloadrepositorytags.payload-registry.deckhouse.ioПример вывода:
NAME REPOSITORY TAG
nb2hi4bnmvrwq3z2nrqxizltoq http-echo latest
orsxg5bpnb2hi4bnmvrwq3z2nrqxizltoq test/http-echo latest
orsxg5bpnb2hi4bnmvrwq3zshjwgc5dfon2a test/http-echo2 latestЗдесь:
NAME— специальное значение, по которому можно оперировать объектами PayloadRepositoryTag в Kubernetes API;REPOSITORY— путь к репозиторию в пределах неймспейса;TAG— имя тега.
Для получения данных о полном адресе тега, который вы можете использовать для операций вроде pull, используйте команду:
d8 k get payloadrepositorytags.payload-registry.deckhouse.io -o wideПример вывода:
NAME REPOSITORY TAG ADDRESS
nb2hi4bnmvrwq3z2nrqxizltoq http-echo latest payload-registry.PUBLIC.DOMAIN/d8-system/http-echo:latest
orsxg5bpnb2hi4bnmvrwq3z2nrqxizltoq test/http-echo latest payload-registry.PUBLIC.DOMAIN/d8-system/test/http-echo:latest
orsxg5bpnb2hi4bnmvrwq3zshjwgc5dfon2a test/http-echo2 latest payload-registry.PUBLIC.DOMAIN/d8-system/test/http-echo2:latestДля получения информации в формате YAML используйте команду:
d8 k get payloadrepositorytags.payload-registry.deckhouse.io -o yamlПример вывода:
apiVersion: v1
items:
- apiVersion: payload-registry.deckhouse.io/v1alpha1
kind: PayloadRepositoryTag
metadata:
name: nb2hi4bnmvrwq3z2nrqxizltoq
namespace: d8-system
spec:
address: payload-registry.PUBLIC.DOMAIN/d8-system/http-echo:latest
repositoryPath: http-echo
tag: latest
- apiVersion: payload-registry.deckhouse.io/v1alpha1
kind: PayloadRepositoryTag
metadata:
name: orsxg5bpnb2hi4bnmvrwq3z2nrqxizltoq
namespace: d8-system
spec:
address: payload-registry.PUBLIC.DOMAIN/d8-system/test/http-echo:latest
repositoryPath: test/http-echo
tag: latest
- apiVersion: payload-registry.deckhouse.io/v1alpha1
kind: PayloadRepositoryTag
metadata:
name: orsxg5bpnb2hi4bnmvrwq3zshjwgc5dfon2a
namespace: d8-system
spec:
address: payload-registry.PUBLIC.DOMAIN/d8-system/test/http-echo2:latest
repositoryPath: test/http-echo2
tag: latest
kind: List
metadata:
resourceVersion: ""
Получение детальной информации об одном теге
Для получения детальной информации об одном теге, включая вывод манифеста и конфигурацию сборки образа, используйте команду:
d8 k get payloadrepositorytags.payload-registry.deckhouse.io nb2hi4bnmvrwq3z2nrqxizltoq -o yamlГде nb2hi4bnmvrwq3z2nrqxizltoq — имя тега, которое получено из вывода команды для получения информации о тегах.
Пример вывода:
apiVersion: payload-registry.deckhouse.io/v1alpha1
kind: PayloadRepositoryTag
metadata:
name: nb2hi4bnmvrwq3z2nrqxizltoq
namespace: d8-system
spec:
address: payload-registry.PUBLIC.DOMAIN/d8-system/http-echo:latest
repositoryPath: http-echo
tag: latest
status:
# Конфигурация сборки образа.
config:
architecture: amd64
config:
Entrypoint:
- /http-echo
Env:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
ExposedPorts:
3000/tcp: {}
Labels:
io.buildah.version: 1.42.2
org.opencontainers.image.ref.name: unknown
org.opencontainers.image.revision: unknown
org.opencontainers.image.source: unknown
User: nobody
WorkingDir: /
created: "2026-01-23T16:41:11.519360879Z"
history:
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- created: "0001-01-01T00:00:00Z"
- comment: FROM gcr.io/distroless/static:latest
created: "2026-01-23T16:41:11.140915464Z"
created_by: '/bin/sh -c #(nop) ARG REF_NAME REVISION SOURCE_URL'
empty_layer: true
- created: "2026-01-23T16:41:11.161892823Z"
created_by: '/bin/sh -c #(nop) LABEL org.opencontainers.image.source="${SOURCE_URL}" org.opencontainers.image.revision="${REVISION}" org.opencontainers.image.ref.name="${REF_NAME}"'
empty_layer: true
- created: "2026-01-23T16:41:11.184166852Z"
created_by: '/bin/sh -c #(nop) WORKDIR /'
empty_layer: true
- created: "2026-01-23T16:41:11.243252582Z"
created_by: '/bin/sh -c #(nop) USER nobody'
empty_layer: true
- created: "2026-01-23T16:41:11.369436443Z"
created_by: '/bin/sh -c #(nop) COPY file:d612754d6a13a156b826b837784bc72eebf6dfa7c4c5f31f09b427aca0d62b59
in / '
- created: "2026-01-23T16:41:11.459012812Z"
created_by: '/bin/sh -c #(nop) ENTRYPOINT ["/http-echo"]'
empty_layer: true
- created: "2026-01-23T16:41:11.519537463Z"
created_by: '/bin/sh -c #(nop) EXPOSE 3000'
empty_layer: true
os: linux
rootfs:
diff_ids:
- sha256:a33ba213ad26a605d904a741f67154f3904c74a43182c872c35f36b10fa005e0
- sha256:8fa10c0194df9b7c054c90dbe482585f768a54428fc90a5b78a0066a123b1bba
- sha256:4840c7c54023c867f19564429c89ddae4e9589c83dce82492183a7e9f7dab1fa
- sha256:114dde0fefebbca13165d0da9c500a66190e497a82a53dcaabc3172d630be1e9
- sha256:4d049f83d9cf21d1f5cc0e11deaf36df02790d0e60c1a3829538fb4b61685368
- sha256:af5aa97ebe6ce1604747ec1e21af7136ded391bcabe4acef882e718a87c86bcc
- sha256:6f1cdceb6a3146f0ccb986521156bef8a422cdbb0863396f7f751f575ba308f4
- sha256:bd3cdfae1d3fdd83a2231d608969b38b82349777c2fff9a7c12d54f8ac5c9b38
- sha256:4cde6b0bb6f50a5f255eef7b2a42162c661cf776b803225dcac9a659e396bb6b
- sha256:1a73b54f556b477f0a8b939d13c504a3b4f4db71f7a09c63afbc10acb3de5849
- sha256:6e7fbcf090d09b73a4aa85f9dce690d0ace73877c150b7c56955487b6e7a822a
- sha256:33b37ab0b0901175c2699d81c10b0c887f0dff944de74763cca00c155904d6fb
- sha256:50ee90d9e014458a23d1abf92a4090b4f1a188880983fe1680c0d5295a828a2e
type: layers
digest: sha256:3b385aa372769d0e0cbb5525cb7725432bc67aad65008b9a740278c637b820c4
# Манифест образа.
manifest:
annotations:
org.opencontainers.image.base.digest: sha256:b55f6779fb7990fb7db5e272c69a4cd6ea7070f3195da71b5ae163bfdbef4f76
org.opencontainers.image.base.name: gcr.io/distroless/static:latest
org.opencontainers.image.created: "2026-01-23T16:41:11.519360879Z"
config:
digest: sha256:c7c28a99a3d4690071ebaa399e158c36085c0e3835a4a5af2071a98be6285d79
mediaType: application/vnd.oci.image.config.v1+json
size: 2979
layers:
- digest: sha256:3c39c084bc4fe5ed7fa48f4333b55e7c44203dd7d4bafdecbefca072de56ae05
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 88242
- digest: sha256:12b98db1f9a3daa07eca266140274100405e2ba33684a9cfed19227d8214a491
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 12760
- digest: sha256:a8b224da3401c2a924df81f6bca78dcc59411d696f7e0f416a4a43b63703218a
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 470057
- digest: sha256:864c4fb7c1f3a443ce0386a9cb14c81e4a029660e0e844e278b707839c73a5f2
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 29309
- digest: sha256:02c91f6b395a6b06d17b8985a2db90aef7b09feedff77eff1f7c269161263a9b
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 75
- digest: sha256:ffdf8cfdbafeabe2762d2dde33e36f1b87dfa967ae34811ff5342ebe8233eb4b
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 197
- digest: sha256:818beb2a6ac52d3cfb90a96d84cff5123ade753aac5adc2dd8f43347f6fa74eb
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 132
- digest: sha256:a0ce62815afcb344f5e245b1fe8026bef515df1fa3446ecc272057ba74be8bed
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 168
- digest: sha256:83717d7c33ed99f82afbd90b8a13fe29f05c433b7c55c2d7e1f2c2df18dfd5d5
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 91
- digest: sha256:b4aa04aa577f2b2f4b4a930e905d091b68b0719ec302b9abca710ffae50ebcaa
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 384
- digest: sha256:4eb6e32233edf636593de3be3c09079eb36e5bc5d405f77f6a943dc65834d8c5
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 320
- digest: sha256:fc7f59ef6392390b606462ab73167728f23fd15febc91249ca52be1d2219adbd
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 133016
- digest: sha256:fd2ff9d4a5fc8079f53da95a9aec698ac79e45cc43863f40e870ce2beeea20ff
mediaType: application/vnd.oci.image.layer.v1.tar+gzip
size: 3042360
mediaType: application/vnd.oci.image.manifest.v1+json
schemaVersion: 2Удаление тега
При удалении тега с использованием Kubernetes API он также будет удалён из хранилища образов.
Для удаления тега используйте команду:
d8 k delete payloadrepositorytags.payload-registry.deckhouse.io nb2hi4bnmvrwq3z2nrqxizltoqГде nb2hi4bnmvrwq3z2nrqxizltoq — имя тега, которое получено из вывода команды для получения информации о тегах.