внедрить переменные окружения в tomcat catalina.properties [Kubernetes] - PullRequest
0 голосов
/ 09 марта 2020

Я использую kubernetes для развертывания веб-приложения.

  containers:
  - name: myapp
    image: tomcat8-jre8:latest
    imagePullPolicy: Always
    env:     
    - name: DATABASE_HOST
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.host
    - name: DATABASE_USER
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.user
    - name: DATABASE_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.password

Я также использую tomcat JNDI с пользовательским сервером. xml и catalina.properties

 <Resource factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            name="jdbc/mysource" 
            auth="Container" 
            type="javax.sql.DataSource" 
            driverClassName="org.postgresql.Driver" 
            url="jdbc:postgresql://******" # secret url
            username="${database.user}"      
            password="${database.password}" />

Я пытался добавление нового свойства в сервер catalina.properties

### catalina specific configuration
database.user = ${DATABASE_USER}              
database.password = ${DATABASE_PASSWORD}   

. xml может хорошо прочитать свойство, но не может разрешить переменные среды $ {DATABASE_USER} и $ {DATABASE_PASSWORD}

Оба server. xml и catalina.properties монтируются как карты конфигурации, конфиденциальная информация хранится в переменных среды. мы не знаем их значений

переменная окружения устанавливается при входе в модуль и распознается из моего веб-приложения (на основе java), но не может прочитать ее из catalina.properties (и / или сервера) . xml)

Может кто-нибудь дать мне совет по этому поводу? Можно ли внедрить переменные окружения в конфигурацию Tomcat?

Спасибо

...