Skip to content

NodeFlow 2.1.0: настройки HAProxy ноды и редактор конфига - #16

Merged
SHOKOVprod merged 4 commits into
mainfrom
release-2.1.0
Sep 29, 2026
Merged

SHOKOVprod merged 4 commits into
mainfrom
release-2.1.0

Conversation

@SHOKOVprod

Copy link
Copy Markdown
Contributor

Панель и Node Agent 2.1.0, HAProxy renderer v21, миграция 000055 (аддитивная).

Основано на #15 от @fesevu — настройки HAProxy для каждой ноды и ручной редактор конфигурации.

Что внутри

  • Настройки HAProxy ноды (maxconn, nbthread, timeout connect/client/server) — в диалоге настроек ноды; пусто = значение по умолчанию.
  • Редактор haproxy.cfg — отдельная страница /nodes/:id/haproxy на Monaco: подсветка, автодополнение, подсказки по директивам на русском, проверка на лету (POST /api/v1/nodes/{id}/config-lint), diff перед применением, история версий, возврат к сборке из UI.
  • Серверная проверка ручных ревизий: 422 config_lint_failed с issues, "force": true — сохранить всё равно; итоговый барьер — haproxy -c на агенте.
  • Исправлено: ручная ревизия при режиме файрвола apply роняла каждый heartbeat (500 desired firewall listener plan is incomplete) — теперь порты берутся из bind.
  • Исправлено: ручной конфиг без перевода строки в конце отклонялся (Missing LF on last line).
  • Agent 2.1.0 присылает текст ошибки haproxy -c → config-state.last_error_detail, в редакторе — ссылки на строки.
  • Переключатель «Логи соединений HAProxy» в диалоге добавления ноды.

Проверено на стенде (панель + нода, файрвол apply): lint, 422/force, применение ручной ревизии (in_sync, heartbeat без ошибок, reload без рестарта), текст ошибки haproxy -c, возврат к сборке из UI. go test ./internal/..., фронтенд 33/33, сборка — ок.

Closes #15

Co-authored-by: Artem Ishmukhamedov 105602239+fesevu@users.noreply.github.com

@SHOKOVprod
SHOKOVprod merged commit 7959170 into main Sep 29, 2026
3 checks passed
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.

1 participant