Перейти в Gitlab репозиторий на вкладку CI/CD и запустить пайплайн на ветку master. При запуске пайплайна необходимо указать переменную RELEASE_VERSION (например, wp-latest)
Далее, после того, как пайплайн отработает - на вкладке container registry появится созданный docker-образ.
sudo make package
sudo make build
Приложение конфигурируется с помощью файла конфигурации conf.yaml, расположенного в папке configs, или с помощью переменных среды
Описание представлено ниже:
Переменная | Обязательность | Описание | Значение по умолчанию |
---|---|---|---|
WEBHOOK_SERVER_PORT | - | Порт сервера приема вебхуков | 8080 |
WEBHOOK_SERVER_PATH | - | Путь по которому сервер ждёт вебхук | /event |
KAFKA_BOOTSTRAP_SERVERS | + | Брокеры Kafka через запятую | localhost:9092 |
KAFKA_TOPIC | + | Топик Kafka в который будут отправляться сообщения | data-bus.wekan.events |
KAFKA_LOGIN | + | Логин к Kafka (необходим, если настроена авторизация на Kafka) | - |
KAFKA_PASSWORD | + | Пароль к Kafka (необходим, если настроена авторизация на Kafka) | - |
sudo docker login https://git.miem.hse.ru/300/wekan-producer/container_registry
https://registry.miem.hse.ru/300/wekan-producer:wp-latest
sudo make package
отработает, контейнер с именем wekan-producer:latest будет готов к запускуДля корректной работы приложения через docker контейнер, необходимо указать ему переменные среды штатными средствами docker (аргумент --env/--env-file, либо создание файла docker-compose, в котором необходимо указать путь до контейнера и необходимые переменные среды)
sudo make build
исходный бинарный файл будет готов к запуску. Для конфигурирования параметров необходимо открыть конфигурационный файл (configs/conf.yaml), в котором установлены значения по умолчанию, и установить свои параметры./wekan-producer
Схема работы сервиса Wekan-producer представлена ниже:
При запуске сервиса стартует сервер, который будет ждать вебхуки по адресу, указанному в переменной WEBHOOK_SERVER_PATH
Обработка вебхуков, которые приходят от досок происходит в функции HandlerFunc()
Далее данные вебхука поступают в функцию Produce()
, которая посылает их в Kafka
Важно отметить, что при получения вебхука сервер сразу же отвечает Wekan'у кодом 200, а лишь затем в асинхронном режиме записывает данные в Kafka. Это сделано для потребления меньшего числа ресурсов, чтобы не нагружать Wekan.