こんにちはスタックオーバーフローコミュニティ!初めての質問者、長年のユーザー。
Cloud Build Local コンポーネントと Secret Manager を使用してローカルで cloudbuild.yaml ファイルをテストしていますが、「availableSecrets」で失敗しています。
エラー メッセージ: 構成ファイルの読み込み中にエラーが発生しました: cloudbuild.Build の不明なフィールド "availableSecrets"
- OS プラットフォーム: Windows 10/WSL2/Ubuntu 18.04
- クラウドビルドローカル: v0.5.2
- Docker エンジン: v20.10.2
- Nodejs バージョン: v14.15.3
- NPM バージョン: 6.14.9
- gcloud バージョン: 326.0.0
- インストールされているコンポーネント: [BigQuery コマンドライン ツール、Cloud Datastore エミュレータ、Cloud SDK コア ライブラリ、Cloud Storage コマンドライン ツール、Google Cloud Build Local Builder、gcloud ベータ コマンド]
Cloud Build ビルド ファイルに関するドキュメント: https://cloud.google.com/cloud-build/docs/build-configクラウド ビルド でシークレットを構成するためのドキュメント: https://cloud.google.com/cloud-build/docs/ secure-builds/use-secrets クラウド ビルド ローカルのドキュメント: https://cloud.google.com/cloud-build/docs/build-debug-locally
実行した手順:
- Secret Manager に追加されたシークレット
- Cloud Build と Secrets Manager 間の有効な API
- 各シークレット パスワードのメンバーとして cloudbuild サービス アカウントを追加しました。
- cloudbuild ユーザーに IAM 権限 Secret Manager Secrets Accessor を追加しました。この情報をどこから入手したかはわかりませんが、この時点では、Secret Manager を cloudbuild で使用しようとする他の試みから残っています。ここでアクセスを適用することと、Secret Manager シークレットに適用することの違いがよくわかりません。
指示: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.