Можем ли мы использовать переменную env в качестве значения для переменной ENV в контейнере развертывания openshift? - PullRequest
0 голосов
/ 17 февраля 2020

Мне нужно войти в Openshift с помощью api, и я упоминаю apikey в файле deploy.yaml, как показано ниже:

    apiVersion: extensions/v1beta1
kind: Deployment
metadata:
 name: abc
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: abc
       version: v1
   spec:
     containers:
      - name: chaos
        image: abcusr/abc:v1
        imagePullPolicy: Always
        env:
         - name: HOST
           value: $host
         - name: NAMESPACE
           value: $namespace
         - name: APIKEY
           value: $apikey

Эти 3 переменные env установлены в travis как переменные env. Но когда я запустил сборку, мое развертывание не было успешным. Он выдавал ошибку:

 error: --server and passing the server URL as an argument are mutually exclusive

Но когда я жестко кодирую все эти значения, это работает.

1 Ответ

0 голосов
/ 17 февраля 2020

Переменные env ($ host et c) ранее не определялись, поскольку значение в переменной env описывается следующим образом:

Ссылки на переменные $ (VAR_NAME): расширен с использованием ранее определенных переменных среды в контейнере и любых переменных среды службы. Если переменная не может быть разрешена, ссылка во входной строке не изменится. Синтаксис $ (VAR_NAME) можно экранировать двойным $$, ie: $$ (VAR_NAME). Экранированные ссылки никогда не будут расширены, независимо от того, существует переменная или нет. По умолчанию используется значение "".

. Однако лучше использовать шаблон с развертыванием (и все другие объекты для вашего приложения) и все такие переменные, как параметры шаблона . Таким образом, вы можете установить эти параметры в фазе шаблона процесса.

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