70 lines
3.6 KiB
Markdown
70 lines
3.6 KiB
Markdown
# Правила работы агента
|
||
|
||
## ⛔⛔⛔ DOCKER — ОБЯЗАТЕЛЬНЫЙ ПОРЯДОК ПЕРЕД КАЖДЫМ BUILD
|
||
|
||
1. УВЕЛИЧИТЬ ТЕГ в `console/deploy/console.yaml` (vX.Y.Z → vX.Y.Z+1)
|
||
2. rsync на ВМ
|
||
3. ПРОВЕРИТЬ что файлы на ВМ новые (grep ключевой строки)
|
||
4. docker build с НОВЫМ тегом
|
||
5. docker push с НОВЫМ тегом
|
||
6. kubectl apply (не rollout restart — apply подтягивает новый тег)
|
||
|
||
**НИКОГДА не делать `docker build` со старым тегом — под не перетянет образ (imagePullPolicy: IfNotPresent)**
|
||
|
||
## Файловая система (актуально)
|
||
|
||
1. Все файлы редактируются локально: `~/fission`
|
||
2. После любых изменений — обязательно rsync на ВМ:
|
||
rsync -az \
|
||
-e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
|
||
~/fission/ \
|
||
naeel@5.172.178.213:~/terra/fission/
|
||
|
||
3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/fission
|
||
4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ
|
||
5. Перед запуском любой команды на ВМ обязательно убедиться, что синхронизация (rsync) выполнена
|
||
6. SCP, sshfs, remote_dev и маунты больше НЕ используются
|
||
7. Только rsync для синхронизации
|
||
|
||
Пример:
|
||
1. Редактируешь локально
|
||
2. rsync на ВМ
|
||
3. Выполняешь команды через SSH на ВМ
|
||
|
||
## SSH
|
||
|
||
Все команды — только через SSH на ВМ. Локально — только читать и редактировать файлы.
|
||
|
||
```bash
|
||
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА'
|
||
```
|
||
|
||
Запрещено локально: `go`, `docker`, `kubectl`, `helm`, `terraform`, `curl/wget`, `git push/pull`, любые скрипты проекта.
|
||
|
||
## Документация
|
||
|
||
- `doc/thinking/` — лог рассуждений агента (обязательно)
|
||
- `doc/progress.md` — трекер задач
|
||
- Старые файлы `doc/` не перезаписывать — новое в новых файлах с датой
|
||
|
||
## Git
|
||
|
||
Коммитить и пушить через SSH после каждого завершённого этапа.
|
||
|
||
Версионирование тегами: `vMAJOR.MINOR.PATCH`
|
||
- Patch — любое изменение кода
|
||
- Minor — новая фича / компонент
|
||
- Major — breaking change
|
||
|
||
```bash
|
||
git tag vX.Y.Z && git push origin vX.Y.Z
|
||
```
|
||
|
||
## Поведение агента
|
||
|
||
- Не трогать рабочий код без явного указания
|
||
- Не делать НИЧЕГО сверх того, о чём явно приказали — ни git-команд, ни rebase, ни дополнительных шагов
|
||
- Если для продолжения нужен выбор — СПРОСИТЬ разрешения, не делать самостоятельно
|
||
- Деструктивные операции (`kubectl delete`, `rm -rf`, `terraform destroy` и др.) — только после явного подтверждения с указанием конкретных объектов
|
||
- Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды
|