keda
Skill71 starsChanged 8 days agoApache-2.0View on GitHub
Design, debug, and review KEDA ScaledObject/ScaledJob autoscaling. Covers all major scalers (Prometheus, SQS, Kafka, Redis, Cron, HTTP Add-on, Azure Service Bus), TriggerAuthentication, scaling lifecycle tuning, GitOps integration, and troubleshooting. Use when asked to "add KEDA autoscaling", "debug why my ScaledObject isn't scaling", "review my KEDA config", or "generate a ScaledObject for <trigger>".
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 4 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Write a production-ready ScaledObject or ScaledJob from a description.
- Very specific: line 48
Check the ScaledObject Conditions block:
- Very specific: line 52
Check HPA for <unknown> targets — indicates metrics adapter cannot reach the external source
- Very specific: line 63
If you need deeper context on KEDA troubleshooting, scaling lifecycle, or scaler-specific behaviour, load references/keda.md.
- Distinctive: line 104
Ask for (or infer from context):
- Distinctive: line 114
If multiple triggers are needed (e.g., queue depth + cron business hours), explain the OR-max semantics
- Distinctive: line 119
Default (not set) → leaves replicas at the last scaled value, which may be 0 if scale-to-zero was active
- Very specific: line 121
Verify: kubectl get deployment <name> -n <namespace> -o jsonpath='{.spec.replicas}' — if replicas are 0, manually scale up: kubectl scale …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Design, debug, and review KEDA (Kubernetes Event-Driven Autoscaling) ScaledObject and ScaledJob resources.
Mode: generate
Write a production-ready ScaledObject or ScaledJob from a description.
Steps:
- Identify: target workload kind (Deployment / StatefulSet / Job), trigger type, and whether scale-to-zero is acceptable
- Choose the right resource kind:
- Long-running service →
ScaledObject - Batch processing per message →
ScaledJob
- Long-running service →
- Generate with:
apiVersion: keda.sh/v1alpha1scaleTargetRef.namematching the exact Deployment/StatefulSet/Job nameminReplicaCount: 0only if the service can tolerate cold-start latency; otherwiseminReplicaCount: 1
Scale-to-zero warning: Setting
minReplicaCount: 0means the Deployment will have 0 replicas when the queue/metric is empty. Cold-start latency applies — confirm this is acceptable before enabling.
pollingIntervalandcooldownPeriodsized to the workload pattern (see table inreferences/keda.md)- Trigger-specific
metadatawithactivationThreshold/activationQueueLengthset to avoid flapping on sparse events authenticationRefpointing to aTriggerAuthentication— never inline credentials in the ScaledObject- For AWS: prefer IRSA (
podIdentity.provider: aws) over static key/secret pairs
- Generate the companion
TriggerAuthenticationorClusterTriggerAuthentication - Show validation command:
kubectl describe scaledobject <name> -n <ns>and the expectedActive: truecondition
Mode: debug
Diagnose why a ScaledObject or ScaledJob is not scaling as expected.
Steps:
- Collect:
kubectl get scaledobject -n <namespace> kubectl describe scaledobject <name> -n <namespace> kubectl get hpa -n <namespace> kubectl describe hpa keda-hpa-<scaledobject-name> -n <namespace> kubectl logs -n keda -l app.kubernetes.io/name=keda-operator --tail=100 kubectl logs -n keda -l app.kubernetes.io/name=keda-operator-metrics-apiserver --tail=100 - Check the ScaledObject
Conditionsblock:Active: false→ scaler is not detecting events (check trigger config and auth)Ready: false→ KEDA cannot reach the target deployment (checkscaleTargetRef.name)Fallback: true→ metric fetch is failing; KEDA is using fallback replicas
- Check HPA for
<unknown>targets — indicates metrics adapter cannot reach the external source - Work through this checklist in order:
- External source reachable from the KEDA namespace?
- TriggerAuthentication secret exists and has correct keys?
activationThresholdtoo high for current event volume?minReplicaCountpreventing scale-to-zero?- Conflicting HPA on the same Deployment?
cooldownPeriodnot yet elapsed?
- State the most likely root cause with the exact field or resource to fix
- Show the corrected spec section and the command to verify it
If you need deeper context on KEDA troubleshooting, scaling lifecycle, or scaler-specific behaviour, load references/keda.md.
Mode: review
Review an existing ScaledObject or ScaledJob for correctness, security, and operational safety.
Review in this priority order:
Correctness
- Does
scaleTargetRef.namematch an existing Deployment/StatefulSet? - Are
minReplicaCountandmaxReplicaCountconsistent with the workload SLA? - Is
pollingIntervalappropriate for the trigger type (SQS charges per API call)? - Does the trigger
metadatause the right field names for this scaler version?
Security
- Are credentials stored in TriggerAuthentication, not inlined in ScaledObject?
- Is IRSA / Workload Identity used instead of static access keys?
- Is TriggerAuthentication namespace-scoped unless cluster-wide sharing is justified?
- Does the IAM policy grant only the minimum permissions needed (read queue depth, not consume)?
Operational safety
- Is
minReplicaCount: 0justified? What is the cold-start latency? - Is
cooldownPeriodlong enough to prevent thrashing? - Is
advanced.restoreToOriginalReplicaCount: trueset if the ScaledObject may be deleted? - Are
activationThreshold/activationQueueLengthset to prevent premature activation on sparse events? - Is HPA
scaleDown.stabilizationWindowSecondsconfigured for latency-sensitive services?
GitOps safety
- Does the Flux/Argo Kustomization depend on KEDA CRDs being installed first?
- Is the TriggerAuthentication Secret rendered by External Secrets Operator (not committed to Git)?
Separate findings into:
- Critical — must fix before deploying (missing auth, wrong target, wildcard IAM permissions)
- Improvement — should fix (tune cooldownPeriod, add activationThreshold)
- Note — informational (consider IRSA, document cold-start expectations)
Mode: scale
Design the scaling strategy for a workload from requirements.
Steps:
- Ask for (or infer from context):
- Workload type: background job or synchronous service?
- Event source: queue service, stream, metrics, time-based, HTTP?
- Expected event volume range (min/max per minute)
- Acceptable cold-start latency (drives min replicas decision)
- Cloud provider (for auth pattern: IRSA vs Workload Identity vs static)
- Apply the KEDA vs HPA decision matrix from
references/keda.md - Recommend the trigger type(s) and explain why
- Size
pollingInterval,cooldownPeriod, andminReplicaCountbased on the workload pattern - Recommend the authentication pattern (IRSA preferred on AWS, no static credentials)
- If multiple triggers are needed (e.g., queue depth + cron business hours), explain the OR-max semantics
- Output the complete ScaledObject, TriggerAuthentication, and IAM policy skeleton
Rollback: kubectl delete scaledobject <name> -n <namespace> removes KEDA control. Replica behavior on deletion depends on configuration:
advanced.restoreToOriginalReplicaCount: true(explicit) → restores the pre-KEDA replica count- Default (not set) → leaves replicas at the last scaled value, which may be 0 if scale-to-zero was active
Verify: kubectl get deployment <name> -n <namespace> -o jsonpath='{.spec.replicas}' — if replicas are 0, manually scale up: kubectl scale deployment <name> -n <namespace> --replicas=<desired>.
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- air-gapped/skills★ 5same name
- lukemurraynz/hve-agent-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/keda.mdcCursor rule
- .cursor/rules/kubernetes.mdcCursor rule
- .cursor/rules/platform-skills.mdcCursor rule
- .cursor/rules/terraform.mdcCursor rule
- code-reviewSkill
- platform-skillsSkill
- ai-governanceSkill
- awesome-docsSkill
- aws-profileSkill
- awsSkill
- azureSkill
- backup-drSkill
- chaosSkill
- checkovSkill
- cluster-upgradeSkill
- commitSkill
- complianceSkill
- composite-actionsSkill
- datadogSkill
- debugSkill
- documentSkill
- doraSkill
- dynatraceSkill
- finopsSkill
- fluxcdSkill
- gateway-apiSkill
- github-actionsSkill
- gitopsSkill
- helmchartSkill
- karpenterSkill
- kingfisherSkill
- kubernetesSkill
- kubescape-operatorSkill
- kubescapeSkill
- kyvernoSkill
- linkerdSkill
- linuxSkill
- mcpSkill
- observabilitySkill
- opaSkill
- openshiftSkill
- platform-skillsSkill
- preflightSkill
- productSkill
- progressive-deliverySkill
- pr-reviewSkill
- renovateSkill
- runtime-securitySkill
- secretsSkill
- self-improveSkill
- setup-agentsSkill
- supply-chainSkill
- terraformSkill
- token-optimizerSkill
- triageSkill
- trivySkill
- zizmorSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

