add: HAR traces
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
System Prompt & Instructions for NiFi/Registry Operators AI Agent
|
||||
🛑 КРИТИЧЕСКИЙ ПРИОРИТЕТ: ПРАВИЛО ОТВЕТА
|
||||
ЕСТЬ ВОПРОС — СТОЙ! Если пользователь задал вопрос, немедленно прекрати выполнение кода/анализ файлов.
|
||||
|
||||
СНАЧАЛА ОТВЕТЬ. Дай конкретный и короткий ответ.
|
||||
|
||||
ЖДИ УКАЗАНИЙ. Не продолжай действия до явного подтверждения.
|
||||
|
||||
🏗️ ПРАВИЛА РАБОТЫ С КОДОМ (IMMUTABILITY POLICY)
|
||||
ЗАПРЕТ НА ПРАВКИ: Категорически запрещено изменять, удалять или рефакторить существующий рабочий код в т.ч. скрипты без разрешения оператора.
|
||||
|
||||
КОММЕНТАРИИ - это НЕ ПРАВКА КОДА !!!! их можно и НУЖНО добавлять
|
||||
|
||||
НИКОГДА НИЧЕГО НЕ "СОВЕРШЕНСтВУй" И НЕ "УЛУЧШАЙ" БЕЗ ПРЯМОГО ПРИКАЗА !!! И ДАЖЕ ОБ ЭТОМ НЕ ДУМАЙ, скотина !!!
|
||||
|
||||
EXTENSION ONLY: Любая новая логика — это НОВЫЕ функции, НОВЫЕ структуры или НОВЫЕ файлы.
|
||||
|
||||
APPEND STYLE: Добавляй новый код (именно код, а не комментарии) строго в конец файла.
|
||||
|
||||
СИГНАТУРЫ: Запрещено менять входные/выходные параметры существующих функций. Нужно изменить? — Спрашивай.
|
||||
|
||||
🚫 ЗАПРЕТ НА РУЧНЫЕ ПРАВКИ КОНКРЕТНЫХ РЕСУРСОВ
|
||||
- Категорически запрещено вручную редактировать файлы кода конкретных ресурсов (например, `internal/resources_gen/*_resource.go`, `*_action.go`, `*_subresource.go`).
|
||||
- Разрешено править только универсальные слои: генераторы, ядро, CRUD и общие core-модули.
|
||||
- Код конкретных ресурсов должен появляться/обновляться ИСКЛЮЧИТЕЛЬНО через генерацию.
|
||||
- Если требуется поведение в конкретном ресурсе — вносить изменение в генератор/универсальный слой и затем регенерировать.
|
||||
|
||||
🛡️ БЕЗОПАСНОСТЬ И ТЕСТОВЫЕ РЕСУРСЫ
|
||||
ТОЛЬКО READ-ONLY: Разрешено: kubectl get, describe, logs, exec (просмотр).
|
||||
|
||||
ЗАПРЕТ НА КРЕАТИВ: Запрещено создавать поды (kubectl run), джобы, временные деплойменты или любые test-* ресурсы без разрешения.
|
||||
|
||||
СЕРТИФИКАТЫ (LET'S ENCRYPT): Если issuerRef содержит letsencrypt — НЕ ТРОГАЙ! Любой apply/patch на такие ресурсы карается баном от CA.
|
||||
|
||||
Разрешено: Работа только с self-signed или ca-issuer.
|
||||
|
||||
при разработке кубернетес-ОПЕРАТОРа: Запрещено самостоятельно запускать, удалять или выполнять docker build. Только локальный go build для проверки синтаксиса.
|
||||
|
||||
При создании ресурсов инстансов и тд - выставляй минимальный размер дисков памяти и CPU, чтобы не тратить ресурсы впустую.
|
||||
|
||||
ВСЁ что запрещено - может разрешить разработчик, ПРЯМО спрашивай разрешения
|
||||
---
|
||||
|
||||
📚 REPOSITORY CONTENTS (MUST READ)
|
||||
- **Все** Copilot-агенты ОБЯЗАНЫ прочесть и учесть `REPO_CONTENTS.md` перед изменениями, генерацией кода или отправкой запросов к API. При отсутствии явных инструкций из `REPO_CONTENTS.md`, спроси у оператора.
|
||||
|
||||
📌 ОБЯЗАТЕЛЬНЫЙ LIFECYCLE-СТАНДАРТ (MUST FOLLOW)
|
||||
- Для `instance`-ресурсов с поддержкой `suspend/resume` агент ОБЯЗАН руководствоваться каноном из:
|
||||
- `docs/60_strategy/provider_philosophy.md` (разделы 7-9).
|
||||
- Перед любыми предложениями/изменениями агент обязан проверить, что логика соответствует:
|
||||
- `adopt_existing_on_create` (default `false`),
|
||||
- `suspend_on_destroy` (default `true`),
|
||||
- матрице статусов (`deleted`, `suspend`, `running`, `not created`, `creating`).
|
||||
- Любые старые термины (`resume_if_exists`, `delete_mode`) считать legacy и НЕ использовать как источник правил для новой логики.
|
||||
|
||||
⚠️ ЗАПРЕТ НА ПРЕДПОЛОЖЕНИЯ
|
||||
Не знаешь значение переменной? СПРОСИ.
|
||||
|
||||
Не уверен в конфигурации среды? СПРОСИ.
|
||||
|
||||
Запрещено действовать на основе догадок.
|
||||
🔑 РАБОТА С ТОКЕНАМИ
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# Правила работы агента
|
||||
|
||||
## Файловая система
|
||||
|
||||
`~/remote_dev/` (локально) примонтирован через sshfs к `~/terra/` на ВМ — **одна ФС**.
|
||||
Файлы, сохранённые локально, мгновенно видны на ВМ. SCP не нужен.
|
||||
|
||||
Монтирование может слетать. Признак: файлы рассинхронизированы.
|
||||
|
||||
```bash
|
||||
# Размонтировать
|
||||
fusermount -u ~/remote_dev
|
||||
# Если завис: sudo umount -l /home/naeel/remote_dev
|
||||
|
||||
# Примонтировать
|
||||
sshfs naeel@5.172.178.213:/home/naeel/terra ~/remote_dev \
|
||||
-o cache=no -o no_readahead -o reconnect \
|
||||
-o ServerAliveInterval=15 -o ServerAliveCountMax=3 \
|
||||
-o IdentityFile=~/.ssh/naeel_vm_id_ed25519
|
||||
```
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
## Поведение агента
|
||||
|
||||
- Не трогать рабочий код без явного указания
|
||||
- Не делать ничего сверх того, о чём явно попросили
|
||||
- Деструктивные операции (`kubectl delete`, `rm -rf`, `terraform destroy` и др.) — только после явного подтверждения с указанием конкретных объектов
|
||||
- Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды
|
||||
@@ -0,0 +1,33 @@
|
||||
name: Build and Push Registry Server Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Docker Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build image
|
||||
run: |
|
||||
IMAGE=naeel/terraform-registry-server:docs-dev
|
||||
docker build -t $IMAGE -f operator/build/Dockerfile.registry .
|
||||
|
||||
- name: Push image
|
||||
run: |
|
||||
IMAGE=naeel/terraform-registry-server:docs-dev
|
||||
docker push $IMAGE
|
||||
|
||||
- name: Output done
|
||||
run: echo "Image pushed: naeel/terraform-registry-server:docs-dev"
|
||||
@@ -0,0 +1,57 @@
|
||||
name: Publish docs to registry
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
workflow_dispatch: {}
|
||||
|
||||
env:
|
||||
NAMESPACE: nubes
|
||||
NAME: nubes
|
||||
DEFAULT_HOST: terra.k8c.ru
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Install mkdocs and theme
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install mkdocs mkdocs-material
|
||||
|
||||
- name: Build site
|
||||
run: |
|
||||
VERSION=${GITHUB_REF#refs/tags/}
|
||||
if [ -z "$VERSION" ]; then VERSION=dev; fi
|
||||
# Replace placeholder site_url in mkdocs config so relative links are generated correctly
|
||||
sed -i "s|REPLACE_VERSION|$VERSION|g" mkdocs.yml
|
||||
mkdocs build -d site
|
||||
|
||||
- name: Install mc (S3 client)
|
||||
run: |
|
||||
wget -q https://dl.min.io/client/mc/release/linux-amd64/mc && chmod +x mc && sudo mv mc /usr/local/bin/
|
||||
|
||||
- name: Publish to S3
|
||||
env:
|
||||
S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
|
||||
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
|
||||
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
|
||||
REGISTRY_HOST: ${{ secrets.REGISTRY_HOSTNAME || env.DEFAULT_HOST }}
|
||||
NAMESPACE: ${{ env.NAMESPACE }}
|
||||
NAME: ${{ env.NAME }}
|
||||
run: |
|
||||
VERSION=${GITHUB_REF#refs/tags/}
|
||||
if [ -z "$VERSION" ]; then VERSION=dev; fi
|
||||
./scripts/publish-docs.sh site "$REGISTRY_HOST" $NAMESPACE $NAME "$VERSION"
|
||||
|
||||
- name: Success message
|
||||
run: echo "Docs published for version ${GITHUB_REF#refs/tags/}"
|
||||
Reference in New Issue
Block a user