Шаблон Openshift / OKD, если условие / else - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время у меня есть шаблон OKD / openshift, который предоставляет порт 1883 для определенного контейнера:

ports:
 - name: 1883-tcp
   port: 1883
   containerPort: 1883
   protocol: TCP
   hostPort: ${MQTT-PORT}

Можно ли использовать предложение if / else в зависимости от параметров.Например:

ports:
 - name: 1883-tcp
   port: 1883
   containerPort: 1883
   protocol: TCP
   {{ if ${MQTT-PORT} != 0 }}
   hostPort: ${MQTT-PORT}
   {{ /if }}

Благодаря этому я могу иметь один и тот же шаблон во всех моих средах (например: разработка / тестирование / производство), но на основе параметров, заданных созданием, некоторые порты доступны для отладки.или тестирование без перенаправления их каждый раз с помощью команды oc.

1 Ответ

0 голосов
/ 05 декабря 2018

Вы не можете выполнять такую ​​условную обработку на уровне шаблона.

Но для достижения желаемого результата вы можете выполнить одно из двух действий.

Опция 1 Передать все параметры, необходимые для обработки условия на уровне шаблона., например, MQTT-PORT и сопоставьте правильный номер порта при создании службы.Это может быть правильным подходом, так как шаблоны разработаны так, чтобы быть как можно менее логичными, вы принимаете все решения на гораздо более низком уровне.

Вариант 2 Если вы можете расслабитьограничение "тот же шаблон", у нас может быть 2 варианта одного и того же шаблона, один с определенным портом, а другой с параметризованным портом.Единственная проблема, связанная с этим параметром, заключается в изменении 2 шаблонов при каждом изменении спецификаций приложения / службы, что нарушает принцип DRY .

Обновление

Использование Helm с OpenShift может быть лучшим вариантом здесь.Вы можете шаблонизировать свои артефакты, используя условные обозначения Helm, и развернуть приложение Helm в OpenShift.Вот репозиторий с таблицей Хелма, специально разработанной для OpenShift.Кроме того, вам нужно указать правильное пространство имен, чтобы Tiller мог использовать Helm с OpenShift.Вы можете найти более подробную информацию об этом здесь .

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