- CI: replace GitLab pipeline with Gitea Actions (.gitea/workflows/release.yaml); publish .deb/image/hosted/chart to Gitea registries; gate image+hosted on .deb (needs + registry pre-check) - drop connectone/Nexus; apt now from the Gitea Debian registry - single version source (/VERSION=3.2.8); CI enforces .env/Chart consistency - restructure: build/->packaging/deb, root Dockerfile->packaging/image, hosted/->packaging/hosted, .kube/->charts/freeradius - Helm chart: documented values, DB password via Secret/$ENV, configurable scheduling/persistence; remove plaintext creds and hostPath PV - gitignore *.env_cnf; docs for hosted (RU)/helm/root + agent KB sync Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.4 KiB
4.4 KiB
AGENTS.md
Что это
Репозиторий упаковки и развёртывания кастомной сборки FreeRADIUS 3.2.x для hotspot/captive-portal сценариев. Прикладного кода нет: это сборочные Dockerfile, shell-скрипты, Helm/k8s-манифесты и конфиги FreeRADIUS. Профиль каркаса: infra-lite.
Главный контекст: agent/INDEX.md. Читать перед любыми изменениями.
Сборка и поставка - через Gitea (git.ahax86.ru, owner pub): Debian-реестр для .deb,
container registry для образа, Helm-реестр для чарта, generic-пакет для hosted-бандла.
Nexus и GitLab больше не используются.
Порядок чтения в начале сессии
AGENTS.md(этот файл).agent/INDEX.md- назначение, артефакты, режимы развёртывания, версии, риски.
Структура репозитория
VERSION ← единый источник версии FreeRADIUS (3.2.8)
.gitea/workflows/release.yaml ← ручной релиз (Gitea Actions): prepare/build-deb/build-image/package-hosted/package-helm
packaging/
deb/ ← сборка .deb из исходников FreeRADIUS + rlm_raw, upload в Debian-реестр Gitea
image/ ← рантайм-образ (Dockerfile + entrypoint.sh + local-noble.list); ставит .deb, печёт конфиг
hosted/ ← bare-metal/VM установка (install.sh, update.sh, systemd, cron, config)
config/ ← radiusd.conf, dictionary, clients.conf, mods-enabled/*, sites-enabled/*
.env / .env_cnf* ← версия пакета и подстановки (хосты, порты, креды БД)
charts/
freeradius/ ← продуктовый Helm-чарт (Deployment, ConfigMap, Secret, PVC, Service)
Инструменты и команды
- Сборка/выкладка - только через Gitea Actions (
.gitea/workflows/release.yaml,workflow_dispatch). - Версия задаётся в
VERSION; CI выводит из неё тег/пин/appVersion и падает при рассинхроне. - Локальная сборка .deb:
docker build packaging/deb -f packaging/deb/Dockerfile --build-arg RADIUS_TAG=release_3_2_8 --build-arg RLM_RAW_BRANCH=v3.2.4 -t freerad-builder:3.2.8 - Локальная сборка образа:
docker build -f packaging/image/Dockerfile --build-arg PKG_VERSION=3.2.8+git -t freeradius:3.2.8 .(контекст = корень). - Тест hosted:
cd packaging/hosted && docker build . -t hosted:test -f Dockerfile - Установка на ноду (bare-metal):
packaging/hosted/install.sh(root), обновление версии:packaging/hosted/update.sh. - Чарт:
helm lint charts/freeradius --set db.password=test,helm template charts/freeradius --set db.password=test. - Линтеров/тестов кода в репозитории нет.
Правила репо
- Ничего не публиковать (push, PR, CI-стейдж, деплой) без явной команды пользователя.
git addстрого поимённо. Никогдаgit add .илиgit add -A..env/.env_cnfне читать целиком и не коммитить - там креды БД. Проверять переменную через grep по^VAR=..env_cnfхранит секреты и не должен попадать в git.- Деструктивные действия с прод-нодами, БД и k8s - только с явного подтверждения.
- Изменился конфиг, версия, хост или инвариант - синхронно отразить в
agent/INDEX.md. - Долгоживущие решения фиксируются в
agent/INDEX.md. Журнал сессий не ведётся по умолчанию. - Документация краткая и строгая: без галлюцинаций, факты берём из кода и конфигов.
Язык
Отвечать по-русски, кратко, без длинных тире.