Сбой локального компонента сборки облака Gcloud с ошибкой «Ошибка загрузки файла конфигурации: неизвестное поле «Доступные секреты» в cloudbuild.Сборка»

#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

Выполненные шаги:

  1. Добавлены секреты в менеджер секретов
  2. Включен API между облачной сборкой и менеджером секретов
  3. Добавлена учетная запись службы cloudbuild в качестве участника каждого секретного пароля.
  4. Добавлено разрешение 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 инструмент.