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