keda
Skill2 starsChanged 3 months agoMITView on GitHub
Kubernetes Event-driven Autoscaling (KEDA) patterns for Azure Container Apps and AKS. Covers all 70+ scalers, advanced scaling patterns, cost optimization, job orchestration, Dapr integration, troubleshooting, and production best practices. WHEN: configuring autoscaling for event-driven workloads, choosing KEDA scalers, optimizing cold start, orchestrating jobs, or debugging scaling issues on ACA or AKS.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- air-gapped/skillstheir own version, first seen Oct 19, 2026
- nitinjain999/platform-skillstheir own version, first seen Oct 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- nitinjain999/platform-skills★ 71same name
- air-gapped/skills★ 6same 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 repository13 other files it gives its agents.
- agent-governance-toolkitSkill
- aks-cluster-architectureSkill
- azure-sre-agentSkill
- container-supply-chainSkill
- dependabot-configurationSkill
- drasiSkill
- hitl-design-patternsSkill
- identity-managed-identitySkill
- owasp-agenticSkill
- rust-patternsSkill
- tauri-desktop-ui-patternsSkill
- tauri-developmentSkill
- typespec-api-designSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Before generating production-shaped output with this skill, verify every identifier, command, version, status, and example against the …
- Distinctive: line 28
Use this skill for Kubernetes Event-driven Autoscaling (KEDA) across Azure Container Apps and AKS.
- Distinctive: line 184
Cooldown periods matter: Default 300s cooldown limits scale-to-zero thrash but delays scale-down (1..N scale-down is the HPA stabilization …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
KEDA Skill
Anti-Hallucination Rule
Before generating production-shaped output with this skill, verify every identifier, command, version,
status, and example against the current authoritative source for the surfaces this skill covers: official
product documentation, the CLI/SDK/reference surface, or the organisation's published standard. Anything
that cannot be verified must be marked [VERIFY] and paired with the verification command or source. Do
not produce final artifacts from memory when verification is blocked; emit a labelled skeleton with
[VERIFY] markers and the verification commands instead.
Use this skill for Kubernetes Event-driven Autoscaling (KEDA) across Azure Container Apps and AKS. KEDA is the scaling brain for event-driven workloads on both platforms.
Version currency
KEDA releases a new minor roughly every four months; supported for two release cycles. Current line (verified 2026-08-26):
- Latest stable: v2.20.2 (2026-07-31). Notable: a dedicated
HPAActivecondition onScaledObject: transient HPA metric gaps no longer flip theReadycondition toFalse(relevant when triaging "not ready" scaled objects). - v2.20.0 (2026-06-01) introduced the OpenSearch and Elastic Forecast scalers (part of the "70+ scalers" surface),
scalingModifiersfallback behavior, AWS External ID support in pod identity, and scaler HTTP request metrics. [VERIFY] Do not cite CVE-2026-42151/42154/40179 against this release; those CVE numbers belong to Prometheus, not KEDA; the corresponding KEDA fix (kedacore/keda issue #7868) is listed as Unreleased in the upstream CHANGELOG.md as of 2026-08-11, not shipped in v2.20.0, v2.20.1, or v2.20.2. Confirm current status againstkedacore/keda/CHANGELOG.mdbefore citing a fixed-in version. - Upgrade note (2.20.0, breaking for custom RBAC): KEDA now records events via the
events.k8s.ioAPI group instead of the legacy coreevents. If you deploy with custom or restricted RBAC, grant the operatorcreate/patchonevents.k8s.io/eventsbefore upgrading, or event recording fails. The bundled manifests and Helm chart already include the permissions. - Regression (v2.20.0–v2.20.1, fixed in v2.20.2): the generated manifests/Helm chart for these two releases dropped the legacy core
""events API group that client-go's event broadcaster also needs, silently breaking native KEDA events (ScaledObjectReady,KEDAScalersStarted, leader-election) even with theevents.k8s.ioRBAC above correctly granted. Upgrade straight to v2.20.2 rather than pinning to v2.20.0/v2.20.1. - Kubernetes support: 2.20 → K8s 1.33–1.35 (each minor supports three K8s minors). Check the current matrix on keda.sh before planning upgrades.
- Next minor (v2.21, unreleased at verification): Liiklus scaler deprecated (upstream unmaintained); ClickHouse and GCP Spanner scalers staged on main. Temporal scaler breaking deprecations land in v2.21:
buildId,selectAllActive,selectUnversionedremoved — migrate toworkerDeploymentName/workerDeploymentBuildId. Azure-side fixes staged: Event Hub duplicate-EntityPathfix. [VERIFY] againstkedacore/keda/CHANGELOG.mdbefore citing as shipped (v2.21 targeted ~second week of September 2026). - HTTP Add-on: v0.14+ replaces
HTTPScaledObjectwithInterceptorRoute(http.keda.sh/v1beta1); the old CRD is deprecated; don't author new ones.
Use When
| Should trigger | Should NOT trigger |
| Configuring autoscaling for event-driven workloads | Generic Kubernetes HPA configuration (non-KEDA) |
| Choosing between KEDA scalers (HTTP, queue, cron, custom) | ACA/AKS architecture decisions without scaling component |
| Debugging scaling issues (not scaling, scaling too fast, scale-to-zero traps) | General container troubleshooting |
| Optimizing cold start or scaling costs | Capacity planning for Fabric/AKS managed services |
| Orchestrating jobs with KEDA (chained, fan-out, cron) | Simple cron job scheduling without KEDA |
Mandatory co-skills
| Platform | Co-skill | Why |
| AKS | aks-cluster-architecture | KEDA runs on AKS — cluster identity, networking, node pools affect scaling |
| ACA | azure-container-apps | ACA has built-in KEDA — understand environment constraints before scaling |
| Event-driven workloads | event-driven-messaging | Consumer groups, partitioning, idempotent consumers affect scaler design |
KEDA on AKS vs ACA
| Aspect | AKS | ACA |
| Installation | Manual (KEDA operator or Helm), or the managed AKS KEDA add-on (az aks update --enable-keda) | Built-in (managed) |
| Scaler support | All 70+ scalers | Subset (HTTP, TCP, CPU/memory, Service Bus, Event Hubs, Kafka, Redis, Cron) |
| Configuration | ScaledObject CRD | CLI / Bicep / ARM |
| Upgrade management | You manage | Platform-managed |
| Cost | Runs on your cluster nodes | Included in ACA billing |
| Advanced features | Full (fallback, polling intervals, triggers) | Limited (no fallback, fewer config options) |
AKS managed add-on version pinning: the AKS KEDA add-on's shipped KEDA version is tied to the cluster's Kubernetes minor version (mapping in the AKS managed add-ons column of the component version table), not to the latest upstream KEDA release this skill tracks (currently v2.20.2). The add-on also lags upstream and does not bundle KEDA's HTTP add-on. If you need a specific KEDA version or the newest release, install manually (operator or Helm) instead of the add-on. Note: KEDA 2.15+ removed pod-identity support ; use Workload Identity with newer versions.
Scaler selection decision framework
| Workload pattern | Recommended scaler | ACA support | Notes |
| HTTP API | http (ACA rule) / HTTP Add-on (AKS) | ✅ | ACA-native http rule scales on concurrentRequests. Core KEDA has no http trigger — on AKS use the KEDA HTTP Add-on (InterceptorRoute, scales on concurrency/request rate) |
| Queue worker | azure-servicebus (queueName) | ✅ | Scale on queue length |
| Topic subscriber | azure-servicebus (topicName + subscriptionName) | ✅ | Scale on subscription length |
| Event Hub consumer | azure-eventhub | ✅ | Scale on partition lag |
| Kafka consumer | kafka | ✅ | Scale on consumer lag |
| Cron/scheduled | cron | ✅ | Scale on schedule (ACA Jobs) |
| Redis list/stream | redis / redis-streams | ✅ | Scale on list length or stream lag |
| Prometheus metrics | prometheus | ⚠️ custom rule | Not a first-class ACA event source, but usable via a custom scale rule |
| Azure Monitor | azure-monitor | ⚠️ custom rule | Not a first-class ACA event source, but usable via a custom scale rule |
| CPU/Memory | cpu / memory | ✅ | Scale on resource utilization |
| MySQL/PostgreSQL | mysql / postgresql | ⚠️ custom rule | Scale on row count. Works on ACA as a custom scale rule, but Microsoft documents Service Bus / Event Hubs / Kafka / Redis as the first-class ACA event sources |
Scaling patterns
AKS prerequisite: the target Deployment (or StatefulSet) must exist before creating the ScaledObject that references it. Install KEDA first — AKS managed add-on (
az aks update --enable-keda) or Helm (helm repo add kedacore https://kedacore.github.io/charts && helm install keda kedacore/keda -n keda --create-namespace).
ACA scale-rule syntax: ACA rules are
http,tcp, orcustom. Onlyhttp/tcpuse their own block; every event-driven source (Service Bus, Event Hubs, Kafka, Redis, cron, …) is expressed as acustomrule carrying the KEDA scalertype+metadata(e.g.custom: { type: azure-servicebus, metadata: { queueName, namespace, messageCount } }). The abbreviatedazureServiceBus:blocks below are shown for readability; map them to acustomrule in real Bicep/ARM/CLI.
Scale-to-zero
# ACA: HTTP-triggered scale to zero
scale:
minReplicas: 0
maxReplicas: 10
rules:
- name: http
http:
metadata:
concurrentRequests: "10"
targetValue: "10"
# AKS: KEDA ScaledObject (event-driven — core KEDA has no `http` trigger)
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: my-app
spec:
scaleTargetRef:
name: my-app
minReplicaCount: 0
maxReplicaCount: 10
triggers:
- type: azure-servicebus
metadata:
queueName: my-queue
namespace: my-namespace
messageCount: "10"HTTP scale-to-zero on AKS is not a
ScaledObjecttrigger. Install the KEDA HTTP Add-on and declare anInterceptorRoute(http.keda.sh/v1beta1, scaling onscalingMetric.concurrencyand/orscalingMetric.requestRate) plus a plain ScaledObject forminReplicaCount/cooldown; the legacyHTTPScaledObjectCRD is deprecated since add-on v0.14. The add-on's interceptor holds the first request while the workload scales from zero. ACA'shttpscale rule (concurrentRequests) is platform-native and unrelated to the add-on.
Always-on with event-driven scaling
# ACA: Worker that must never scale to zero
scale:
minReplicas: 1
maxReplicas: 20
rules:
- name: servicebus
azureServiceBus:
queueName: my-queue
messageCount: "100"Multiple scaler triggers
# Scale on HTTP traffic OR queue depth, whichever demands more
scale:
minReplicas: 1
maxReplicas: 50
rules:
- name: http
http:
metadata:
concurrentRequests: "20"
- name: queue
azureServiceBus:
queueName: orders
messageCount: "50"Critical rules
- Never set minReplicas=0 on ingress-disabled workloads. Once scaled to zero, nothing restarts it.
- CPU/memory scalers cannot scale to zero. A replica must be running to measure utilization.
- Cooldown periods matter. Default 300s cooldown limits scale-to-zero thrash but delays scale-down (1..N scale-down is the HPA stabilization window, see advanced-patterns).
- Queue scalers use message count, not age. A queue with 1 old message scales the same as 1 new message.
- Verify scaler availability on your platform. ACA doesn't support all AKS scalers.
Anti-patterns
| Anti-pattern | Why it's bad | Fix |
| minReplicas=0 + ingress disabled | Permanently dead app | Set minReplicas ≥ 1 or add event trigger |
| CPU scaler + scale-to-zero | Can't measure CPU on zero replicas | Use HTTP or event-driven scaler instead |
| No cooldown configuration | Thrashing under bursty load | Set appropriate cooldown per scaler |
| Single scaler for multi-dimensional load | Misses scaling signals | Use multiple triggers |
| Hardcoded scaler metadata | Can't tune without redeployment | Use environment variables or config maps |
Related skills
event-driven-messaging. Service Bus, Event Hubs, Kafka patterns
Bundles
| Bundle | Load when |
| scalers | Choosing or configuring any scaler; per-scaler YAML, availability matrix, v2.20 changes |
| advanced-patterns | Scale-to-zero strategy, cooldown/fallback tuning, Dapr, pausing for maintenance |
| cost-optimization | Idle-cost reduction, platform cost comparison, right-sizing |
| jobs-orchestration | Chained jobs, fan-out/fan-in, saga, retry/idempotency design |
| troubleshooting | Not scaling, thrash, scale-to-zero stuck, operator diagnostics |
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.

