Я использую 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?
Спасибо