⚡ ~/naveed Interview Prep
⚡ Portfolio Home ✍️ Engineering Blog Deep Dives 🎯 Interview Hub 1,000+ Scenarios ☸️ Kubernetes Mastery Hub 24 Modules 🎮 DevOps Arcade & Quizzes Subnet Blitz ⚡ 🗺️ DevOps Roadmaps PDFs & Guides 🤖 Morpheus Analysis AI Quant ↗ 🛠️ Developer Tools Utilities 🧪 Labs & Experiments 📄 Interactive CV & Certs 🔗 All Links & Socials ⚡ Join The Dispatch (Weekly SRE Newsletter) →
← Back to All Platform Engineering & IDP Interview Questions Scenario 11 of 50 in Platform Engineering & IDP
Senior Platform Engineer Platform Engineering Internal Developer Platforms & Catalogs Catalog Governance
🎯 Target Role / Context: Senior Platform Engineer Interview · Platform Governance

Q: Your organization has 4,500 GitHub repositories, but only 1,800 have valid catalog-info.yaml files in Backstage. How do you detect 'ghost services' actively running in Kubernetes clusters that lack catalog ownership, and automate catalog adoption?

Detecting and remediating orphaned repositories, decommissioned infrastructure, and shadow services missing catalog-info.yaml metadata.

#Platform Engineering #Backstage #Governance #Service Catalog #GitHub #DevEx
🎙️ Candidate Opening & Architectural Context
"Catalog drift creates dangerous security and operational blind spots when production services have no registered on-call team or Slack channel. Remediation requires correlating active Kubernetes Deployment labels with Backstage catalog entities and enforcing automated admission gates."
Advertisement
⚡ Recommended Practice Lab

Want to master this scenario in a live sandbox? KodeKloud's CKA & CKAD Hands-On Certification Track covers this exact problem with hands-on terminal drills.

🛠️ Production Runbook & Step-by-Step Resolution

1

Correlate Kubernetes Runtime Deployments with Backstage API

Run a nightly reconciliation script querying the Kubernetes API across all clusters. Extract `app.kubernetes.io/name` from active deployments and query Backstage's `/api/catalog/entities/by-name/component/default/{name}`. Any cluster deployment missing from Backstage is flagged as an unregistered ghost service.

# Query Backstage API to verify registration
curl -s -H "Authorization: Bearer $BACKSTAGE_TOKEN" \
  https://backstage.acme.com/api/catalog/entities/by-name/component/default/checkout-api | jq .metadata.name
2

Automate Catalog-Info Generation via GitHub PRs

For repositories without catalog files, run an automated script that inspects package.json / pom.xml / go.mod and git commit history to infer service name and primary contributors, opening automated PRs containing a valid `catalog-info.yaml`.

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: checkout-api
  description: Checkout core transaction service
spec:
  type: service
  lifecycle: production
  owner: team-checkout
Advertisement
3

Enforce Admission Webhook for Production Namespaces

Deploy a Kyverno / OPA policy in production clusters blocking deployment manifests that do not include the annotation `backstage.io/kubernetes-id` matching a verified registered service in Backstage.

Pro Tip: Governance Rule: You cannot deploy to production unless your service has an assigned owner, pager duty escalation policy, and registered catalog entity.
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Eliminate shadow IT by continuously cross-referencing runtime Kubernetes deployments against the Backstage catalog and enforcing catalog metadata via admission policies."
⚡ 60-Second Elevator Pitch Talking Points
  • Run automated cron auditors comparing active cluster deployment names against Backstage entity APIs.
  • Generate automated pull requests creating default catalog-info.yaml files based on repository commit history.
  • Enforce production Kyverno policies requiring verified Backstage catalog ownership annotations.
Advertisement
Want more Platform Engineering & IDP scenarios?
Explore our complete collection of scenario-based Platform Engineering & IDP interview runbooks.
Browse All Platform Engineering & IDP Questions →