Переменные среды MySQL не заполняются в Openshift V3 - PullRequest
0 голосов
/ 12 мая 2018

Я настраиваю службу MySQL в контейнере Openshift, но не могу получить к нему доступ из остальных служб.

Согласно документации (https://docs.openshift.com/online/dev_guide/environment_variables.html#automatically-added-environment-variables), при создании службы, окружения X_SERVICE_HOST и X__SERVICE_PORT заполняются для остальных служб, но я не могу получить доступ к их из моей службы Java (с использованием заполнителя ${MYSQL_SERVICE_HOST} в файле .properties).

Ранее я мог подключаться к базе данных MySQL, используя значение Cluster IP в определении службы, но он тоже не работает, я пытался импортировать секрет mysql в свой сервис Java, который должен импортировать переменные env, такие как имя пользователя, pwd и т. д., но не импортировать имя хоста и порт.

Как указано в этой теме (https://github.com/openshift/origin/issues/10401) Я пытался создать службу MySQL с именем MYSQL, но это не удалось из-за верхнего корпуса.

Как мне распространять среду для других служб?

Спасибо.

Редактировать: проблема была окончательно решена, неверный формат соединения с MySQL URL, и где-то в нем содержался дополнительный /, после того как я установил, что vbles распространяется правильно.

Ответы [ 3 ]

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

Эти переменные среды будут существовать только в модуле, где выбирается манифест службы. Например, если селектор манифеста службы совпадает с метками модуля, то только эти модули будут иметь переменные среды. Другие модули не будут видеть эти переменные среды.

В вашем java-приложении просто обратитесь к имени службы mysql и порту, который оно предоставляет, и вам будет хорошо. Но убедитесь, что ваш java-клиент и mysql находятся в одном пространстве имен / проекте.

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

Проблема была окончательно решена, неверный формат подключения MySQL URL, и он содержал лишние / где-то, после того, как я исправил, что vbles распространяется правильно.

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

Заказ может быть проблемой здесь. Я полагаю, что сервис нужно будет создать до любого из конфигураций развертывания, контроллеров репликации и т. Д., Которые используют их как env vars.

...