1

bbrun を使用して、パイプラインの実行をローカルでシミュレートしています。基本的に私が必要としているのは (問題ではありません)、GCP 上のインフラストラクチャのテラグラント デプロイを自動化することです。したがって、タグでプッシュされるたびに、特定の環境がデプロイされます。

これは私の bitbucket-pipelines.yml です (bbrun 用に簡略化):

image: alpine/terragrunt:latest

definitions:
  steps:
    - step: &terragrunt
        name: run terragrunt
        script:
            - cd ./env/dev
            - terragrunt validate-all


pipelines:
  default:
    - step: *terragrunt

そして、ハードコードされたシークレットを含む credentials.json ファイル (/env/dev にあります) があるときに、これを bbrun で実行すると、すべてが機能します。では、ファイルに変数があることをパイプラインが認識できるように、credentials.json ファイルに変数を追加するにはどうすればよいでしょうか?

たとえば、bitbucket-piplines コンソール PRIVATE_KEY に secrete 変数を追加すると、terragrunt にこの行を読み取らせたい

"private_key": "-----BEGIN PRIVATE KEY-----\${env:PRIVATE_KEY}\n-----END PRIVATE KEY-----\n",
#I also tried $PRIVATE_KEY and ${PRIVATE_KEY} when running bbrun with -e PRIVATE_KEY=***

変数の値として credentials.json で。

ここで bbrun が間違っているだけで、bitbucket パイプラインが実際に変数値を渡すかどうかはわかりませんが、変数を使用して実行すると次のエラーが発生します。

Error: Error in function call

---

Call to function "jsondecode" failed: invalid character '$' in string escape
code.

私も追加するのに疲れました:

            variables:
              PRIVATE_KEY_ID: $PRIVATE_KEY_ID
              PRIVATE_KEY: $PRIVATE_KEY

うまくいきませんでした。

また、動作する envsubst コマンドを使用してステップ スクリプトのファイルを編集しようとしましたが、これは使用するのがちょっとばかげているようです。

4

1 に答える 1