#google-app-engine #gcloud #google-cloud-build #cloudbuild.yaml
#google-движок приложений #gcloud #google-облачная сборка #cloudbuild.yaml
Вопрос:
Приветствую сообщество stackoverflow! Спрашивающий в первый раз, давний пользователь.
Я тестирую свой cloudbuild.файл yaml локально с использованием локального компонента облачной сборки и диспетчера секретов, и он не работает на «availableSecrets».
Сообщение об ошибке: ошибка загрузки файла конфигурации: неизвестное поле «Доступные секреты» в cloudbuild.Сборка
- Платформа ОС: Windows 10 / WSL2 / Ubuntu 18.04
- cloud-build-local: v0.5.2
- Двигатель Docker: v20.10.2
- Версия Nodejs: v14.15.3
- Версия NPM: 6.14.9
- версия gcloud: 326.0.0
- Установленные компоненты: [Средство командной строки BigQuery, эмулятор облачного хранилища данных, библиотеки ядра Cloud SDK, Средство командной строки облачного хранилища, локальный конструктор Google Cloud Build, команды бета-версии gcloud]
Документация по файлу сборки облачной сборки: https://cloud.google.com/cloud-build/docs/build-config Документация по настройке секретов с помощью облачной сборки: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets Документация для локальной сборки облака: https://cloud.google.com/cloud-build/docs/build-debug-locally
Выполненные шаги:
- Добавлены секреты в менеджер секретов
- Включен API между облачной сборкой и менеджером секретов
- Добавлена учетная запись службы cloudbuild в качестве участника каждого секретного пароля.
- Добавлено разрешение IAM для доступа к секретным секретам для пользователя cloudbuild. Я не знаю, откуда я получил эту информацию, но на данный момент она является остаточной от других попыток использовать Secret Manager с cloudbuild. Я не уверен в разнице между применением access здесь и применением к секретному менеджеру secret.
Команда: cloud-build-local --config=cloudbuild.staging.yaml --dryrun=false .
cloudbuild.staging.yaml:
- name: gcr.io/cloud-builders/npm
entrypoint: 'npm'
args: [ 'install' ]
- name: 'gcr.io/cloud-builders/gcloud'
args: ["app", "deploy"]
env:
- 'DAO_FACTORY=datastore'
- 'POLL_INTERVAL=15'
- 'PROMPT=staging>'
- 'ENVIRONMENT=staging'
- 'NAMESPACE=staging'
- 'RESET_DATASTORE=false'
secretEnv: ['ADMIN_USER', 'SUPER_ADMINS', 'BOT_TOKEN']
availableSecrets:
secretManager:
- versionName: projects/{project token}/secrets/SYSTEM_USER/versions/1
env: 'ADMIN_USER'
- versionName: projects/{project token}/secrets/SUPER_ADMINS/versions/1
env: 'SUPER_ADMINS'
- versionName: projects/{project token}/secrets/BOT_TOKEN/versions/2
env: 'BOT_TOKEN'```
Tag: cloud-build-local. I guess without reputation a meaningful tag cannot be created. Maybe an esteemed community member will create this as this may be specific to cloud-build-local only.
Комментарии:
1. Функция очень новая (менее 1 недели). Вы получили последнюю версию cloudbuild local?
2. Да, я подумал, что это может быть так; Я никогда не был так близок к выпуску :). Я нажал на файл cloudbuild с помощью доступных секретов, и он работал нормально. Сейчас у меня есть другие проблемы с облачной сборкой, но я открою новую заявку, если у меня возникнут какие-то вопросы. Спасибо за проверку.
Ответ №1:
Поддержка Google Secret Manager в файле дескриптора сборки Google Cloud, по-видимому, очень новая и, похоже, на данный момент не поддерживается локальным компонентом cloud-build; пожалуйста, смотрите Комментарий от Гийома о том, что этой функции уже неделю. Когда дескриптор облачной сборки запускается в облачной сборке, он работает нормально.
Комментарии:
1. кто-нибудь знает, когда это будет добавлено? Я на версии 331, и ее все еще нет
2. Я на 360.0.0, и это все еще проблема.
Ответ №2:
Я исправил аналогичную проблему, обновив gcloud
инструмент.