Как обновить переменную в файле yaml с помощью переменной среды в azure

#kubernetes #azure-devops #yaml #azure-pipelines

#kubernetes #azure-devops #yaml #azure-конвейеры

Вопрос:

Я создаю конвейер для развертывания приложения, я создал переменную group для пароля базы данных в конвейере 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}}
  

Я хочу использовать значение переменной env в файле yaml, я пробовал так, но это не удается, я не хочу выполнять поиск / замену.
Пожалуйста, предложите.

Комментарии:

1. Привет @Умеш Кумар. Есть ли какие-либо обновления по этому билету? Не стесняйтесь, дайте мне знать, если ответ может вам помочь. Просто напоминаю об этом .

Ответ №1:

Если вы хотите изменить свой файл yaml, вы можете использовать задачу замены токена. Это позволит вам заменить токен в файле на ваши значения переменных.

Здесь у вас есть пример использования:

 - 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}#

  

И тогда вам это не нужно:

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

Если только нет другого места, где вы хотите использовать эту переменную env.

Комментарии:

1. Спасибо @Krzysztof Madej Я попробую это, как мне подойти, когда у меня есть несколько переменных для обновления?

2. Что вам нужно, так это поместить имя переменной между префиксом токена и суффиксом. Таким образом, next_variable будет #{NEXT_VARIABLE}# .