Skip to content

Настройки HAProxy для каждой ноды и Advanced-редактор конфигурации - #15

Closed
fesevu wants to merge 1 commit into
NodeFlow-dev:mainfrom
fesevu:feature/haproxy-configuration
Closed

fesevu wants to merge 1 commit into
NodeFlow-dev:mainfrom
fesevu:feature/haproxy-configuration

Conversation

@fesevu

@fesevu fesevu commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Добавлены настройки HAProxy для каждой ноды: максимальное число соединений, количество потоков и таймауты подключения, клиента и сервера. Сгенерированную из UI конфигурацию можно загрузить в Advanced-редактор и отредактировать вручную. Редактор поддерживает сохранение версий без применения, явное назначение версии ноде, историю конфигураций и просмотр состояния применения.

При назначении ручной версии автоматическая публикация маршрутов блокируется до явного возврата к сборке из UI. Возврат собирает актуальные сохранённые маршруты и настройки, создаёт и назначает новую версию в одной транзакции, обновляя состояния развёртывания маршрутов. Для проверки и применения конфигурации используется существующий механизм Node Agent.

Проверки:

  • Сборка фронтенда и все 20 frontend-тестов прошли.
  • Все Go unit-тесты прошли в Linux.
  • Интеграционный тест с PostgreSQL проверяет сохранение настроек, автоматическую публикацию, откат изменений маршрута при активном ручном режиме и атомарный возврат к сборке из UI.
  • Ошибки существующих интеграционных тестов обновления учётных данных и dashboard воспроизводятся и на исходной версии проекта без этих изменений.

Инструкция по использованию и обезличенные скриншоты добавлены в docs/features/haproxy-configuration.md.

@fesevu fesevu changed the title Add per-node HAProxy settings and advanced configuration editor Настройки HAProxy для каждой ноды и Advanced-редактор конфигурации Sep 26, 2026
@SHOKOVprod

Copy link
Copy Markdown
Contributor

Подумаю над тем как качественно внедрить эту идею

@SHOKOVprod

Copy link
Copy Markdown
Contributor

Спасибо за PR! 🙌 Идея — настраивать HAProxy для каждой ноды и дать ручной редактор конфига — в точку, мы её приняли и сделали на её основе релиз 2.1.0 (#16). Ваш коммит сохранён в истории, вы указаны соавтором.

Во время тестов на стенде доработали:

  • maxconn / nbthread / таймауты перенесли в обычные настройки ноды, вкладку Global убрали;
  • редактор стал отдельной страницей на Monaco: подсветка, подсказки по директивам, проверка синтаксиса на лету (POST /config-lint), diff перед применением;
  • исправили баг: при режиме файрвола apply ручная ревизия ломала heartbeat (500 desired firewall listener plan is incomplete) — теперь порты берутся из bind;
  • агент возвращает текст ошибки haproxy -c, в интерфейсе видна причина, а не просто validation_failed;
  • в конец ручного конфига добавляется перевод строки (Missing LF on last line).

Закрываю этот PR в пользу #16. Будем рады следующим!

@SHOKOVprod SHOKOVprod closed this Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants