我正在使用 bbrun 来模拟本地运行的管道。本质上,我需要的(不是问题)是在 GCP 上自动执行 terragrunt 基础设施部署。因此,每次使用标签推送时,它都会部署特定的环境。
这是我的 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
当我使用 bbrun 运行此程序时,当我有一个包含硬编码秘密的凭据.json 文件(位于 /env/dev 中)时,一切正常。那么如何将变量添加到credentials.json 文件中,以便管道知道该文件中有一个变量?
例如,如果我在 bitbucket-pipelines 控制台 PRIVATE_KEY 中添加一个 Secret 变量
我想让 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 命令编辑步骤脚本文件,该命令有效,但这似乎使用起来有点愚蠢。