Back to Skills

kubernetes-manifests

verified

Use when writing and deploying Kubernetes manifests for container orchestration.

View on GitHub

Marketplace

han

TheBushidoCollective/han

Plugin

jutsu-kubernetes

Technique

Repository

TheBushidoCollective/han
60stars

jutsu/jutsu-kubernetes/skills/kubernetes-manifests/SKILL.md

Last Verified

January 24, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/TheBushidoCollective/han/blob/main/jutsu/jutsu-kubernetes/skills/kubernetes-manifests/SKILL.md -a claude-code --skill kubernetes-manifests

Installation paths:

Claude
.claude/skills/kubernetes-manifests/
Powered by add-skill CLI

Instructions

# Kubernetes Manifests

Understanding and writing Kubernetes manifest files.

## Basic Structure

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: my-app
  namespace: default
  labels:
    app: my-app
spec:
  containers:
  - name: app
    image: nginx:latest
    ports:
    - containerPort: 80
```

## Common Resource Types

### Deployment

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: app
        image: myapp:1.0.0
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
```

### Service

```yaml
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
  type: LoadBalancer
```

### ConfigMap

```yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  database.url: "postgres://db:5432"
  log.level: "info"
```

### Secret

```yaml
apiVersion: v1
kind: Secret
metadata:
  name: app-secrets
type: Opaque
data:
  password: cGFzc3dvcmQxMjM=  # base64 encoded
```

## Best Practices

### Resource Requests and Limits

Always define resource requests and limits:

```yaml
resources:
  requests:
    memory: "64Mi"
    cpu: "250m"
  limits:
    memory: "128Mi"
    cpu: "500m"
```

### Liveness and Readiness Probes

```yaml
livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5
```

### Labels and Selectors

Use consistent labeling:

```yaml
metadata:
  labels:
    app: my-app
    version: v1
    environment: production
```

## Validation

```bash
# Validate manifest syntax
kubectl apply --dry-run=client -f manifest.yaml

#

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
1854 chars