如何在Azure中使用环境变量更新yaml文件中的变量

时间:2020-10-26 11:28:58

标签: kubernetes azure-devops yaml azure-pipelines

我正在创建用于部署应用程序的管道,我已经在azure管道中为数据库密码创建了变量组,并希望在用于部署应用程序的单独yaml中使用密码值。 azure-pipeline.yml

variables:
- group: databaseCredentials
steps:
- script: |
    set -x
    export POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

下面是我的秘密yaml文件secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  postgres-password: ${{POSTGRES_PASSWORD}}

我想在yaml文件中使用env变量值,我曾这样尝试过,但是失败了,我不想进行搜索/替换。 请提出建议。

1 个答案:

答案 0 :(得分:1)

如果要修改yaml文件,可以使用Token replace task。它将允许您使用变量值替换文件中的令牌。

这里有示例用法:

<MaterialHelperTextBox
            style={styles.materialHelperTextBox}
          ></MaterialHelperTextBox>
          <MaterialHelperTextBox1
            style={styles.materialHelperTextBox1}
          ></MaterialHelperTextBox1>

您的文件应该是:

- task: replacetokens@3
  inputs:
    targetFiles: 'yourfile.yaml'
    encoding: 'auto'
    writeBOM: true
    actionOnMissing: 'warn'
    keepToken: false
    tokenPrefix: '#{'
    tokenSuffix: '}#'
    useLegacyPattern: false
    enableTelemetry: true

然后您就不需要了:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  postgres-password: #{POSTGRES_PASSWORD}#

除非没有其他地方要使用此env变量。