Repository navigation
NodeFlow 2.1.0
NodeFlow 2.1.0
Panel 2.1.0 · Node Agent 2.1.0 · HAProxy renderer v21
Настройки HAProxy для ноды и полноценный редактор haproxy.cfg. Одна аддитивная миграция (000055). Ноды без новых настроек рендерятся байт в байт как в 2.0.1. Идея и первая версия — @fesevu (#15).
Новое
- Настройки HAProxy ноды. В диалоге настроек ноды (шестерёнка), строкой под переключателем «Логи соединений HAProxy»:
maxconn,nbthread,timeout connect,timeout client,timeout server. Пустое поле — значение по умолчанию. Настройки действуют на все маршруты ноды; изменение публикует новую ревизию, Agent применяет её reload без разрыва соединений. Хранятся вnodes.metadata.haproxy_settings. Обновлять Agent не нужно. - Редактор конфигурации HAProxy. Кнопка «Конфигурация HAProxy» на странице ноды открывает
/nodes/:id/haproxy:- редактор Monaco (поставляется с Panel, грузится отдельно только на этой странице), подсветка синтаксиса HAProxy, миникарта, автодополнение;
- подсказки на русском при наведении: секции, ~120 директив, параметры
server/bind, алгоритмыbalance, fetch-функции; - предупреждения об опасных местах; имена
nf_be_*/nf_srv_*помечены «не переименовывать» — от них зависят статистика и квоты; - строка состояния: время и «Конфиг валиден» или «N ошибок, M предупреждений» (клик — к первой проблеме), список портов прослушивания;
- кнопки: «Сохранить» (Ctrl+S), «Всё равно сохранить» (только при ошибках линтера), «Форматировать», «Применить на ноду» (сохраняет и применяет, перед применением — diff с применённым конфигом; при ошибках линтера — дополнительное подтверждение), «История», «Загрузить из маршрутов», «Вернуться к сборке из UI».
- Проверка конфига. Линтер в браузере на каждое изменение и
POST /api/v1/nodes/{id}/config-lintна Panel (задержка 250 мс). Проверка статическая (в образе Panel нетhaproxy), списки ключевых слов сверены с исходниками HAProxy 2.8, 3.0 и 3.2. Находит: неизвестные секции, директивы,option, параметрыserver/bind, видыtimeout; директиву не в той секции; лишние,/;(например,option tcplog,); повторяющиеся имена proxy и серверов;use_backend/default_backendна несуществующий backend; неверные порты, адреса, длительности, значенияmode/balance/hash-type/log; несбалансированные.if/.endif; конфиг больше 512 КиБ. Окончательная проверка — по-прежнемуhaproxy -cна ноде перед применением. - Ручное сохранение проверяется на Panel. С ошибками линтера API отвечает 422
config_lint_failedсо списком проблем;"force": trueсохраняет всё равно. Первая строка# Generated by NodeFlow. Do not edit.заменяется на# Edited manually in NodeFlow advanced editor., в конец добавляется перевод строки (иначеhaproxy -cпадает сMissing LF on last line). - Текст ошибки
haproxy -c. Agent 2.1.0 при неудачной проверке отправляет строки[ALERT]/[WARNING](путь временного файла заменён наhaproxy.cfg, без цветовых кодов и строк сpassword/secret, до 1500 байт). Panel отдаёт их вconfig-state.last_error_detail, редактор показывает под ошибкой со ссылками на строки. Старые Agent сообщают толькоvalidation_failed. - «Добавить ноду»: переключатель «Логи соединений HAProxy» сразу в диалоге, значение передаётся в установку ноды.
Исправления
- Ручной конфиг при политике файрвола
applyломал heartbeat Agent — каждый запрос завершался 500desired firewall listener plan is incomplete. Теперь план файрвола берёт порты изlistener_tcp_portsручной ревизии (вычисляются по строкамbind). Для старых ручных ревизий без этого поля текущие порты сохраняются, ничего не закрывается.
Обновление с 2.0.1
-
Panel. Повторно запустите установщик:
curl -fsSL https://raw.githubusercontent.com/NodeFlow-dev/nodeflow/main/install.sh | sudo shВручную: в
/opt/nodeflow/.envукажитеNODEFLOW_VERSION=2.1.0и выполнитеdocker compose pull && docker compose up -d. Миграция 000055 только добавляет столбец (ADD COLUMN … NULL); откат — вернутьNODEFLOW_VERSION=2.0.1, столбец можно оставить. -
Node Agent. «Настройки → Node Agent» → «Обновить до 2.1.0». Нужно только для текста ошибки
haproxy -cв редакторе; настройки HAProxy ноды и всё остальное работают с Agent 2.0.x.
Учтите: пока на ноде назначен ручной конфиг, маршруты этой ноды из UI не публикуются (409 advanced_config_active) — до «Вернуться к сборке из UI».
Обновляетесь с 1.0.x — сначала прочитайте заметки к релизу 2.0.0: там однократный drop-in systemd для pipe-буферов ядра.
Файлы релиза
NodeFlow-Panel-2.1.0-Agent-2.1.0-install-kit.tar.gz— install kit.nodeflow-node-agent-2.1.0-linux-amd64,nodeflow-node-agent-2.1.0-linux-arm64— бинарники Node Agent.
Panel поставляется образом ghcr.io/nodeflow-dev/nodeflow-panel:2.1.0 (linux/amd64 и linux/arm64). SHA-256 каждого файла — поле digest в API релиза; install.sh и install-node.sh сверяют его сами.