admission-control

Validate and mutate grafana-app-sdk ManagedKind create and update requests.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/1k-off/umbraco-observability-playground --skill admission-control-1k-off
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: admission-control
Source: https://github.com/1k-off/umbraco-observability-playground/tree/main/.agents/skills/admission-control
Command: npx skills add https://github.com/1k-off/umbraco-observability-playground --skill admission-control-1k-off

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Admission control prevents invalid or inconsistent Kubernetes-style resources from being persisted by intercepting create and update requests before they reach storage, ensuring Grafana App SDK apps enforce business rules at the boundary.

Core Features & Use Cases

  • Validation (deny/allow): Reject requests with clear, field-oriented error messages when required spec fields are missing, violated, or immutable constraints are broken.
  • Mutation (set/normalize): Modify incoming resources to apply defaults, normalize fields, or prepare required derived values before persistence.
  • Operation-aware logic: Handle Create vs Update vs Delete with access to both the new object and the old object for immutability checks.

Use cases include implementing guardrails for grafana-app-sdk ManagedKinds so that users cannot create Grafana app resources with missing required fields, illegal combinations of spec options, or references to non-existent dependencies.

Quick Start

Use the admission-control skill to implement a Validator and/or Mutator for your ManagedKind so that Create requests are checked for required fields and Update requests enforce immutability rules.

Frequently Asked Questions about admission-control

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

FAQPage Schema
How do I validate resources before they are persisted in a Kubernetes webhook?

To validate resources before persistence, you implement a Validator handler that intercepts create and update requests, checks spec correctness, and rejects invalid resources with clear, field-oriented error messages before they reach storage.

How do I set default values for resources using a mutating webhook?

You can set defaults by implementing a Mutator handler that modifies incoming resources during the admission request, normalizing fields or applying required derived values before the resources are persisted by the system.

How does admission control handle immutability checks during resource updates?

Admission control handles immutability by providing operation-aware logic that differentiates create vs update actions, allowing handlers to access both the old and new objects to enforce immutability constraints on specific fields.

Can I use grafana-app-sdk to enforce referential integrity for managed kinds?

Yes, you can use grafana-app-sdk to define Validator handlers that enforce referential integrity by checking incoming resources for references to non-existent dependencies and rejecting invalid requests during admission.

How do I register validation and mutation operations for CUE kind definitions?

You register validation and mutation operations by defining the respective handlers in your application code and enabling the corresponding validation or mutation operations within the CUE kind definition configuration.

What is the difference between validating and mutating resources in admission control?

Validating resources denies or allows requests based on spec correctness, while mutating resources modifies incoming objects to apply defaults or normalize fields before persistence, ensuring consistent data without rejecting the request.