Kubernates передают переменную env в "kubectl create" - PullRequest
0 голосов
/ 11 мая 2018

Мне нужно передать динамическую переменную env в kubectl create. Как то так

kubectl create -f app.yaml --Target=prod

На основе кода цели развертывается на разных серверах.

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

kubectl config set-context позволяет вам настроить кластер, пространство имен, учетные данные пользователя и многое другое и сохранить его как «контекст» в вашем ~ / .kube / config.

Вы можете использовать --contextвариант kubectl точно так, как вы использовали --Target в вашем примере.

0 голосов
/ 14 мая 2018

Если вы хотите избежать установки сторонних плагинов, вы можете заменить текст с помощью sed "s / orginal / change /".Это сработало.Я использовал это в оболочке Дженкинса.

cat app.yaml |sed "s / l3-apps / l2-apps /" |kubectl создать -f -

0 голосов
/ 12 мая 2018

Вы можете достичь этого двумя способами:

  1. Использовать Шлем .Это «менеджер пакетов» для Kubernetes, созданный именно для вашего случая использования (динамические переменные для настройки поведения ваших ресурсов).Если это только одна переменная, «преобразование» вашего развертывания так же просто, как создание новой диаграммы Хелма, копирование ваших файлов в templates/, изменение values.yaml и использование {{ .Values.target }} в ваших шаблонах.См. Руководство по быстрому запуску для более подробного введения в Helm.

  2. Если вы считаете, что Helm находится над верхней частью для одной переменной, используйте kubectlСпособность читать со стандартного ввода.Вам понадобится дополнительный шаблонизатор (например, усы ).Перепишите ваше развертывание, чтобы оно соответствовало вашему шаблонному инструменту.Создайте динамический data.yml в процессе развертывания (например, простой скрипт bash, который читает из переменных среды) и выполните что-то вроде mustache data.yml deployment.mustache | kubectl apply -f -.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...