Я использую Gcloud для запуска Prow (сервер непрерывной интеграции). Одна из моих работ - создать виртуальную машину, выполнить несколько тестов, а затем удалить этот экземпляр. Я использую служебную учетную запись для создания ВМ, запускаю тесты.
#!/bin/bash
set -o errexit
cleanup() {
gcloud compute instances delete kyma-integration-test-${RANDOM_ID}
}
gcloud config set project ...
gcloud auth activate-service-account --key-file ...
gcloud compute instances create <vm_name> \
--metadata enable-oslogin=TRUE \
--image debian-9-stretch-v20181009 \
--image-project debian-cloud --machine-type n1-standard-4 --boot-disk-size 20 \
trap cleanup exit
gcloud compute scp --strict-host-key-checking=no --quiet <script.sh> <vm_name>:~/<script.sh>
gcloud compute ssh --quiet <vm_name> -- ./<script.sh>
Через некоторое время я получил следующую ошибку:
ERROR: (gcloud.compute.scp) INVALID_ARGUMENT: Login profile size exceeds 32 KiB. Delete profile values to make additional space.
Действительно, для этой учетной записи службы команда describe
возвращает много данных, например ~ 70 записей в разделе sshPublicKeys
.
gcloud auth activate-service-account --key-file ...
gcloud compute os-login describe-profile
Большая часть этих открытых ключей относится к уже удаленным экземплярам виртуальной машины. Как выполнить очистку этого списка? Или можно вообще не хранить эти открытые ключи?