IIUC не существует универсального типа для «вещей, которые живут в проектах», поэтому вам нужно перечислить все типы (которые вас интересуют) конкретно.
Кроме того, некоторые ресурсы (например, ключи) принадлежат учетным записям служб, которые принадлежат проектам.
for PROJECT in $(\
gcloud projects list \
--format="value(projectId)")
do
echo "Project: ${PROJECT}"
echo "Services"
gcloud services list --project=${PROJECT}
echo "Kubernetes Clusters"
gcloud container clusters list --project=${PROJECT}
echo "Compute Engine instances"
gcloud compute instances list --project=${PROJECT}
echo "Service Accounts"
for ACCOUNT in $(\
gcloud iam service-accounts list \
--project=${PROJECT} \
--format="value(email)")
do
echo "Service Account keys: ${ACCOUNT}"
gcloud iam service-accounts keys list --iam-account=${ACCOUNT} --project=${PROJECT}
done
done
Однако при таком подходе возникают различные проблемы:
- Для некоторых перечислений может потребоваться более подробная информация (например, регионы | зоны)
- Вы должны быть исчерпывающими (в нем не будет указано, что вы не запрашиваете)
- это становится вложенным | быстро запутывается
- Некоторые службы запрашивают, если они не включены (например, Compute Engine)
NB
- Вы можете подать
--filter=...
к каждой из вышеперечисленных команд - Вы можете заключить весь цикл в один, который перечисляет
gcloud auth list
учетных записей