Структура проекта¶
Каждый проект хранится в отдельной папке в корне ветки интеграций.
| Файл | За что отвечает |
|---|---|
<проект>.camel.yaml |
Маршруты, бины и REST. Редактируется в дизайнере |
application.properties |
Имя проекта, зависимости, настройки Camel, сборки (jib) и развертывания (JKube), параметры интеграции |
deployment.jkube.yaml |
Фрагмент Deployment: порт, пробы, переменные окружения, аннотации Prometheus. Используется и dev-подом |
log4j2.properties |
Формат логов: без ANSI-цветов, с trace id и span id |
openapi.json (необязательно) |
Описание REST API, если маршруты построены по нему |
*.java (необязательно) |
Процессоры и стратегии агрегации на Java |
В deployment.jkube.yaml уже есть порты http (8080, REST) и observability (9876, пробы и метрики), пробы /observe/health/live и /observe/health/ready и переменные OpenTelemetry. Не добавляйте в него serviceAccount: JKube начнёт создавать и удалять сервисную учётную запись при каждой сборке.
Что создаётся в кластере¶
Развертывание создаёт Deployment и Service с именем проекта. Service слушает порт 80, Camel в контейнере слушает 8080. Другие интеграции вызывают интеграцию по адресу http://<проект>:80.
Поды получают метки provider=neomsa-esb и group=neomsa-esb. По ним Prometheus и Logstash находят интеграции.