Параметры и секреты¶
Параметры интеграции¶
Адреса, имена очередей и другие настройки задавайте в конце application.properties, а в маршрутах ссылайтесь на них как {{my.param}}:
Секреты¶
Пароли и токены не храните в application.properties: файлы проекта попадают в git. Создайте секрет Kubernetes в namespace платформы:
apiVersion: v1
kind: Secret
metadata:
name: integration-db
type: Opaque
stringData:
DB_URL: "jdbc:postgresql://db.example.local:5432/integration"
DB_USERNAME: "integration_user"
DB_PASSWORD: "<пароль>"
Файл с заполненным секретом не кладите в репозиторий интеграций.
Подключите секрет как переменные окружения в deployment.jkube.yaml. Остальные поля контейнера из шаблона (порты, пробы, переменные OpenTelemetry) сохраните:
spec:
template:
spec:
containers:
- env:
- name: DB_URL
valueFrom:
secretKeyRef:
name: integration-db
key: DB_URL
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: integration-db
key: DB_USERNAME
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: integration-db
key: DB_PASSWORD
В маршрутах и бинах переменная окружения читается так: {{env:DB_URL}}.
- beans:
- name: default
type: org.apache.commons.dbcp2.BasicDataSource
properties:
url: '{{env:DB_URL}}'
username: '{{env:DB_USERNAME}}'
password: '{{env:DB_PASSWORD}}'
driverClassName: org.postgresql.Driver
Для бина нужны зависимости camel-sql, commons-dbcp2 и драйвер PostgreSQL, пример есть в разделе Зависимости.
deployment.jkube.yaml используется и при развертывании, и в dev-режиме, поэтому секреты доступны интеграции в обоих случаях. Переменные окружения читаются при старте пода: после изменения секрета перезапустите интеграцию.