k8s-autoscaling — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited k8s-autoscaling (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Comprehensive autoscaling using HPA, VPA, and KEDA with kubectl-mcp-server tools.
Use this skill when:
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Verify metrics-server for HPA | CRITICAL | get_resource_metrics |
| 2 | Set resource requests before HPA | CRITICAL | describe_pod |
| 3 | Use KEDA for scale-to-zero | HIGH | keda_scaledobjects_list_tool |
| 4 | Check VPA recommendations | MEDIUM | get_resource_recommendations |
| Task | Tool | Example |
|---|---|---|
| List KEDA ScaledObjects | keda_scaledobjects_list_tool | keda_scaledobjects_list_tool(namespace) |
| Get ScaledObject | keda_scaledobject_get_tool | keda_scaledobject_get_tool(name, namespace) |
| List ScaledJobs | keda_scaledjobs_list_tool | keda_scaledjobs_list_tool(namespace) |
| Check KEDA | keda_detect_tool | keda_detect_tool() |
Basic CPU-based scaling:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70Apply and verify:
kubectl_apply(hpa_yaml, namespace)
get_hpa(namespace)Right-size resource requests:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: my-app-vpa
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
updatePolicy:
updateMode: "Auto"keda_detect_tool()keda_scaledobjects_list_tool(namespace)
keda_scaledobject_get_tool(name, namespace)keda_scaledjobs_list_tool(namespace)keda_triggerauths_list_tool(namespace)
keda_triggerauth_get_tool(name, namespace)keda_hpa_list_tool(namespace)See KEDA-TRIGGERS.md for trigger configurations.
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: sqs-scaler
spec:
scaleTargetRef:
name: queue-processor
minReplicaCount: 0
maxReplicaCount: 100
triggers:
- type: aws-sqs-queue
metadata:
queueURL: https://sqs.region.amazonaws.com/...
queueLength: "5"triggers:
- type: cron
metadata:
timezone: America/New_York
start: 0 8 * * 1-5
end: 0 18 * * 1-5
desiredReplicas: "10"triggers:
- type: prometheus
metadata:
serverAddress: http://prometheus:9090
metricName: http_requests_total
query: sum(rate(http_requests_total{app="myapp"}[2m]))
threshold: "100"| Strategy | Tool | Use Case |
|---|---|---|
| CPU/Memory | HPA | Steady traffic patterns |
| Custom metrics | HPA v2 | Business metrics |
| Event-driven | KEDA | Queue processing, cron |
| Vertical | VPA | Right-size requests |
| Scale to zero | KEDA | Cost savings, idle workloads |
Reduce costs for idle workloads:
keda_scaledobjects_list_tool(namespace)Get recommendations and apply:
get_resource_recommendations(namespace)get_hpa(namespace)
get_pod_metrics(name, namespace)
describe_pod(name, namespace)keda_scaledobject_get_tool(name, namespace)
get_events(namespace)| Symptom | Check | Resolution |
|---|---|---|
| HPA unknown | Metrics server | Install metrics-server |
| KEDA no scale | Trigger auth | Check TriggerAuthentication |
| VPA not updating | Update mode | Set updateMode: Auto |
| Scale down slow | Stabilization | Adjust stabilizationWindowSeconds |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.