Files
fission-console/.github/pravila.md
T

3.6 KiB

Правила работы агента

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 на ВМ. Локально — только читать и редактировать файлы.

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
git tag vX.Y.Z && git push origin vX.Y.Z

Поведение агента

  • Не трогать рабочий код без явного указания
  • Не делать НИЧЕГО сверх того, о чём явно приказали — ни git-команд, ни rebase, ни дополнительных шагов
  • Если для продолжения нужен выбор — СПРОСИТЬ разрешения, не делать самостоятельно
  • Деструктивные операции (kubectl delete, rm -rf, terraform destroy и др.) — только после явного подтверждения с указанием конкретных объектов
  • Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды