Как получить список неиспользуемых изображений в семействе изображений - PullRequest
0 голосов
/ 02 мая 2018

Я слежу за документом по управлению изображениями в Google для создания приложений GCE изображений. Я устанавливаю семейства изображений, чтобы выбрать последнее изображение из. Однако я изо всех сил пытаюсь получить отсортированный список старых изображений для очистки.

gcloud compute images describe-from-family test-packerized-centos7-base

возвращает последнее изображение

{
    "archiveSizeBytes": "883668032",
    "creationTimestamp": "2018-04-25T23:25:36.137-07:00",
    "description": "Created by Packer",
    "diskSizeGb": "20",
    "family": "test-packerized-centos7-base",
    "id": "6938962862287932976",
    "kind": "compute#image",
    "labelFingerprint": "42WmSpB8rSM=",
    "licenseCodes": [
    "1000207"
     ],
   "name": "wp-centos7-base-bbaelish-shenanigans-3-1524723518",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/my_project/global/images/wp-centos7-base-bbaelish-shenanigans-3-1524723518",
   "sourceDisk": "https://www.googleapis.com/compute/v1/projects/my_project/zones/us-central1-a/disks/packer-5ae16f3e-13c6-0d93-da79-2f6e81f88fec",
  "sourceDiskId": "5923696438202388910",
  "sourceType": "RAW",
  "status": "READY"
}

Однако, когда я перечисляю все изображения в проекте и grep с фамилией, я вижу все старые изображения, все еще в состоянии готовности.

gcloud compute images list | grep test-packerized-centos7-base
wp-centos7-base-bbaelish-shenanigans-1-1523048775 test-packerized-centos7-base READY
wp-centos7-base-bbaelish-shenanigans-1-1523050176 test-packerized-centos7-base READY
wp-centos7-base-bbaelish-shenanigans-2-1524258996 test-packerized- centos7-base READY
wp-centos7-base-bbaelish-shenanigans-2-1524259307 test-packerized-centos7-base READY

Я знаю, что должен отказаться от старых изображений, однако я изо всех сил пытаюсь получить отсортированный список старых изображений. Я хочу отметить последние 5 изображений как устаревшие, а последние 3 изображения после этого как устаревшие.

Я пытался использовать Jq фильтры, чтобы получить отсортированный список.

gcloud compute images list --format json | jq '.[] | select(.family == "test-packerized-centos7-base") | sort_by(.creationTimestamp)'

Однако возвращается следующая ошибка

jq: error (at <stdin>:4622): Cannot index string with string "creationTimestamp"

Любой знает простые способы получения списка старых изображений в «Семействах изображений». Я предполагаю, что Google где-то поддерживает порядок, так как, когда я удаляю последнее изображение в семье, оно автоматически указывает на старое.

1 Ответ

0 голосов
/ 21 июня 2018

Если вы хотите отсортировать список изображений, вам нужно будет выполнить команду gcloud images list и применить специальные фильтры , чтобы отсортировать изображения по дате.

Команда , которую вы должны выполнить:

$ gcloud compute images list --format="value(NAME)" --filter="[sorting-filter]" 

Где [sorting-filter] будет фильтр, который сортирует изображения по дате создания.

Для получения справки о том, как писать фильтры и как их использовать, вы можете обратиться к этой документации по Google Cloud . По сути, вам просто нужно найти правильный фильтр. Поскольку это особый фильтр, и вопрос действительно уникален для вашего варианта использования, вам придется ознакомиться с документацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...