Перейти к содержанию

Структура проекта

Каждый проект хранится в отдельной папке в корне ветки интеграций.

Файл За что отвечает
<проект>.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 находят интеграции.