AIKraft/Skills/Логика Reconciler

Логика Reconciler

Implement reconcilers and watchers for grafana-app-sdk apps — write `TypedReconciler[*MyKind]` reconcile functions, apply generation-based skip patterns, do conflict-safe status updates via `resource.UpdateObject`, configure `BasicReconcileOptions` (namespace, label/field filters, finalizer management), use `Watcher` for event-style handling, reconcile `UnmanagedKinds` (resources your app doesn'

GLGrafana Labs official Другое

Что делает навык

Skill реализует асинхронный слой бизнес-логики для приложений grafana-app-sdk через механизмы Reconciler и Watcher. Он обеспечивает наблюдение за состоянием ресурсов и их приведение к желаемому виду, обрабатывая события создания, обновления и удаления.

Когда применять

  • Создание операторов для кастомных ресурсов с использованием паттерна TypedReconciler
  • Безопасное обновление статуса ресурсов с помощью resource.UpdateObject для избежания конфликтов
  • Фильтрация событий по пространству имен, меткам или полям через BasicReconcileOptions
  • Обработка ресурсов, которыми приложение не управляет напрямую, через UnmanagedKinds

Как работает

  1. Сгенерировать заглушки оператора командой grafana-app-sdk project component add operator
  2. Реализовать функцию ReconcileFunc, используя паттерн operator.TypedReconciler для типизации
  3. В начале функции проверки generation (LastObservedGeneration) для пропуска уже обработанных ресурсов
  4. Выполнять атомарные обновления статуса через resource.UpdateObject с указанием subresource "status"
  5. Зарегистрировать reconciler в app.go, настроив BasicReconcileOptions (Namespace, LabelFilters, FieldSelectors)
  6. Собрать и запустить оператор командой go run ./cmd/operator для проверки логов

Примеры запросов агенту

Напиши функцию реконсиляции для MyKind, которая пропускает ресурсы с неизменным generation
Как безопасно обновить статус ресурса, чтобы избежать ошибок 409 Conflict?
Настрой BasicReconcileOptions для фильтрации ресурсов по метке env=prod и пространству имен my-namespace

Что понадобится

  • Установленный grafana-app-sdk
  • Среда Go (go build, go run)
  • Доступ к кластеру Kubernetes (kubectl)

Описание составлено по SKILL.md навыка, сверено 06.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «reconciler-logic» из репозитория: # https://github.com/grafana/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r reconciler-logic/ ~/.claude/skills/reconciler-logic/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.