Comprehensive toolkit for validating, linting, and testing Kubernetes YAML resources. Use this skill when validating Kubernetes manifests, debugging YAML syntax errors, performing dry-run tests on clusters, or working with Custom Resource Definitions (CRDs) that require documentation lookup.
Overall
score
93%
Does it follow best practices?
Validation for skill structure
--- to separate multiple resources in a single file<resource-type>-<name>.yamlmetadata:
name: my-app
namespace: production
labels:
app: my-app
version: v1.0.0
component: backend
managed-by: kubectl
annotations:
description: "Backend service for my-app"app labelAlways specify both requests and limits:
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"Always define liveness and readiness probes:
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5securityContext:
runAsNonRoot: true
runAsUser: 1000
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALLimage: registry.example.com/my-app:v1.2.3 # Always use specific tags
imagePullPolicy: IfNotPresent # Or Always for :latestapiVersion and kind are always requiredmetadata.name is required for all resourcesspec.selector must be specified for Deployments/Servicesspec.template.spec.containers must have at least one containerDeployment selector must match pod template labels:
# Deployment
spec:
selector:
matchLabels:
app: my-app # Must match pod labels below
template:
metadata:
labels:
app: my-app # Must match selector aboveextensions/v1beta1 → apps/v1 (Deployments, DaemonSets)networking.k8s.io/v1beta1 → networking.k8s.io/v1 (Ingress)policy/v1beta1 → policy/v1 (PodDisruptionBudget)Always use the latest stable API version.
Install with Tessl CLI
npx tessl i pantheon-ai/k8s-yaml-validator@0.1.0