Несколько баз данных с одним API для отдыха - PullRequest
0 голосов
/ 04 декабря 2018

Доброе утро, в данный момент у меня есть следующий дистрибутив

  • У меня есть несколько баз данных, не являющихся лазурными
  • Контейнерная запись в лазури, связанная с kubernetes с изображениями моего REST APIприложение внутри

в моем приложении у меня есть server.xml, который

 <Realm className = "org.apache.catalina.realm.LockOutRealm">
    <Realm className = "org.apache.catalina.realm.JDBCRealm" connectionURL = "jdbc: sqlserver: //xxxx.database.windows.net:1433; database = demo1; user = xxx @ xxx; password =` `; encrypt = true; trustServerCertificate = true; hostNameInCertificate = *. database.windows.net; loginTimeout = 30; " driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver" roleNameCol = "role" userCredCol = "password" userNameCol = "login" userRoleTable = "userRole" userTable = "v_login" />
        </ Realm>

, который ссылается на мою базу данных, и через него устанавливается соединение ... это нормально.

Однако я использовал для каждого банка изображение, изменяющее эти параметры, но теперь я хочу иметь только одно изображение и изменить параметр извне

Я много искал и не нашел способа изменить эти параметры.внешние параметры (в deploy.yaml или service.yaml)

Мне нужна ваша помощь

Ответы [ 2 ]

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

Не выпекайте URL-адрес jdbc внутри вашего образа докера.Выделите те, кто использует переменные среды.Tomcat поддерживает интерполяцию системных свойств Java внутри server.xml.вам нужно использовать catalina_opts, чтобы установить системное свойство java из переменных среды.

проверить этот пост переменные среды / системы в файле server.xml .

Другое дело, используйте configmap и / или секреты для установки переменных env в развертывание https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data

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

Вы можете передать аргументы командной строки в своем развертывании yaml: .spec.template.spec.containers[0].args.Это массив строк, каждая строка является аргументом командной строки для вашего исполняемого файла.

Пример:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  namespace: default
  labels:
    app: my-app
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 2
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - image: my-image
        name: my-app
        args: [
          "argument-1",
          "argument-2"
        ]
...