observe-kro

Trace Kubernetes resources to owning kro instances via labels, annotations, and managedFields.

14|Updated Jan 17, 2026
One-click install
npx skills add https://github.com/confighub/cub-scout --skill observe-kro
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: observe-kro
Source: https://github.com/confighub/cub-scout/tree/main/skills/observe-kro
Command: npx skills add https://github.com/confighub/cub-scout --skill observe-kro

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you determine whether a Kubernetes resource is managed by kro, identify which specific kro instance it belongs to, and explain what kind of kro controller activity produced the current field values—without guessing.

Core Features & Use Cases

  • Kro-specific ownership detection: Classifies resources as kro-managed by inspecting labels, annotations, and owner-reference chains that match kro API groups.
  • Instance vs definition tracing: Distinguishes kro Instance resources from ResourceGraphDefinition outputs, even when labels are missing.
  • Writer attribution via managedFields: Identifies which kro field manager wrote the data (applyset, applyset-parent, or labeller), so you can answer “what caused this change?”
  • Edge-case handling for real clusters: Skips empty kro label values, falls back across multiple signal sources, and surfaces limitations when multiple kro labels are present.

Quick Start

Ask the AI to explain a single Kubernetes object and trace it back to its kro instance, for example: "explain deploy/api -n prod and tell me if it is managed by kro and what manager wrote the current fields."

Frequently Asked Questions about observe-kro

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if a Kubernetes resource is managed by kro?

To check if a Kubernetes resource is managed by kro, inspect its labels, annotations, and owner-reference chains for matches against kro API groups. The Skill classifies resources as kro-managed by tracing these signals back to the owning kro instance or ResourceGraphDefinition.

What does the kro.run/applyset manager mean in managedFields?

The kro.run/applyset manager in managedFields indicates which kro controller wrote the current field values. This Skill attributes writers by checking manager strings like applyset, applyset-parent, or labeller to explain what kro activity caused a specific change.

How do I trace a Kubernetes object back to its kro instance?

Trace a Kubernetes object to its kro instance by reading kubectl-derived object metadata and applying kro API group detection. The Skill prioritizes signal sources like labels and ownerReferences, falling back across multiple sources to distinguish kro Instances from ResourceGraphDefinition outputs.

Why does my kro-managed resource have missing or empty labels?

Empty kro label values are skipped during ownership detection, and the Skill falls back to annotations or ownerReference chains to identify the kro instance. It also surfaces limitations when multiple kro labels are present, ensuring accurate attribution without guessing.

Can I diagnose configuration drift on resources managed by kro applysets?

Yes, you can diagnose drift on kro-managed applyset writes by analyzing kubectl-derived object metadata and managedFields manager strings. The Skill identifies which kro field manager wrote the data to help pinpoint what caused the current field values.

Do I need kubectl to troubleshoot kro ownership and writer attribution?

Yes, troubleshooting kro ownership requires reading kubectl-derived object metadata to detect kro API groups and attribute writers via managedFields. The Skill applies this metadata to distinguish kro instances from definitions using label, annotation, and ownerReference fallbacks.