Список тегов изображений GCR с использованием GCloud SDK CLI

Я пытаюсь получить список всех тегов в моем частном репозитории GCR. Я мог бы сделать это с помощью команды gcloud container images list-tags следующим образом:

gcloud container images list-tags gcr.io/project-id/REPONAME

DIGEST        TAGS          TIMESTAMP
6b5727be962a  0.0.4,latest  2020-06-25T14:14:48
4b8c3f9c6ab7  0.0.3         2020-06-22T08:56:01

Однако мне нужно, чтобы список был плоским, чтобы я мог получать теги 0.0.4 и последние в отдельных строках. Я попробовал следующую команду.

gcloud container images list-tags gcr.io/project-id/REPONAME --flatten='[].tags'

Это дало мне вывод, который, к моему удивлению, повторяет тег latest, но пропускает 0.0.4.

DIGEST        TAGS    TIMESTAMP
6b5727be962a  latest  2020-06-25T14:14:48
6b5727be962a  latest  2020-06-25T14:14:48
4b8c3f9c6ab7  0.0.3   2020-06-22T08:56:01

Что я делаю не так, и как я могу это исправить?


person Sudev G    schedule 15.07.2020    source источник


Ответы (1)


Я могу воспроизвести ваше наблюдение и думаю, что это ошибка.

Кажется, что --flatten правильно перечисляет tags, но неправильно возвращает последнее значение в списке в качестве значения каждой записи.

В моем случае, если теги v1,v2,v3, я получаю:

gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--flatten="[].tags[]" \
--format="value(tags)" \
--filter="digest=${DIGEST}"
v3
v3
v3

Я рекомендую вам зарегистрировать ошибку в системе отслеживания ошибок Google для Cloud SDK.

jq

Если у вас есть jq, возможно:

gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
 jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| {"digest":$D,"tag":.,"timestamp":$T}'

Or:

gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
 jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| [$D,.,$T] | @csv'
person DazWilkin    schedule 15.07.2020
comment
Спасибо за ваш вклад. По вашему предложению я открыл задачу в системе отслеживания ошибок GCloud SDK, ссылка. - person Sudev G; 16.07.2020
comment
Обновление: @DazWilkin Google устранил эту проблему, и планируется, что она станет частью GCloud SDK версии 325.0.0, которая будет выпущена во вторник, 26 января 2021 г. - person Sudev G; 22.01.2021
comment
Спасибо за обновления! - person DazWilkin; 22.01.2021