У меня есть конвейер, который использует переменные из библиотеки. Для сред IN, QA и STAGE я использую переменную из общих переменных. Но теперь мне нужно создать среду PROD и развернуть ее в PROD. И только для среды PROD приходится использовать ту же переменную, но с другим значением. Как это сделать?
Потому что, если я добавлю специальную переменную для PROD, мне придется изменить ее в CI, в сборке. Тогда для INT, QA и STAGE будет использоваться неправильная переменная. И планирую сделать деплой на PROD зависимым от билда и деплой на STAGE как на картинке:
когда я создам другую переменную для PROD, то в конвейере сборки мне нужно будет изменить эту переменную, но тогда не будут работать среды INT, QA и STAGE.
Переменные в конвейере сборки распределяются по CD в INT, QA и STAGE. Они объявляются в начале конвейера CI, а также работают в шаблонах для развертывания.
Вы можете создать переменную конвейера с тем же ключом, что и в других средах, и значением, которое вы хотите для PROD, а затем выбрать этап для PROD. Таким образом, значение для производственной среды будет переопределено значением, которое вы установили в переменной конвейера.
Вы можете создать и клонировать группу переменных в своей библиотеке, присвоить группам разные значения и назначить разные группы разным этапам в управлении связями групп переменных конвейера.
У меня есть группа переменных на 1 уровне конвейера сборки, в которой переменные относятся к среде INT, QA и STAGE. И на уровне 2 у меня есть группа переменных для развертывания в среде PROD. Когда конвейер выполняется, он использует переменные уровня 1 для INT, QA и STAGE. А потом, когда приходит деплой в PROD, он использует переменные 2-го уровня. И несмотря на то, что в группах переменных у нас есть одна переменная с разными значениями, она использует последнее значение, т.е. переменные 2-го уровня.
Из вашего вопроса я действительно не понимаю, почему вы не можете объявить отдельную переменную для PROD. вы можете использовать переменные условно на основе env. В любом случае, пожалуйста, включите минимальный воспроизводимый пример, чтобы получить максимальную помощь от сообщества. Минимальным воспроизводимым примером в вашем случае будет конвейер yaml.