Skip to content
Development
Skill

/keda

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

BOOST
From plugin
platform-skills
6950 skills2 agents
Install
$ npx -y skills add nitinjain999/platform-skills --skill keda --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/keda

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

keda.SKILL.md
name: keda
description: 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>".
argument-hint: "[scale|debug|review|generate] [description or file path]"
title: "KEDA Command"
sidebar_label: "keda"
custom_edit_url: null

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: 1. Identify: target workload kind (Deployment / StatefulSet / Job), trigger type, and whether scale-to-zero is acceptable 2. Choose the right resource kind:

  • Long-running service → `ScaledObject`
  • Batch processing per message → `ScaledJob`

3. Generate with:

  • `apiVersion: keda.sh/v1alpha1`
  • `scaleTargetRef.name` matching the exact Deployment/StatefulSet/Job name
  • `minReplicaCount: 0` only if the service can tolerate cold-start latency; otherwise `minReplicaCount: 1`

> **Scale-to-zero warning:** Setting `minReplicaCount: 0` means the Deployment will have 0 replicas when the queue/metric is empty. Cold-start latency applies — confirm this is acceptable before enabling.

  • `pollingInterval` and `cooldownPeriod` sized to the workload pattern (see table in `references/keda.md`)
  • Trigger-specific `metadata` with `activationThreshold`/`activationQueueLength` set to avoid flapping on sparse events
  • `authenticationRef` pointing to a `TriggerAuthentication` — never inline credentials in the ScaledObject
  • For AWS: prefer IRSA (`podIdentity.provider: aws`) over static key/secret pairs

4. Generate the companion `TriggerAuthentication` or `ClusterTriggerAuthentication` 5. Show validation command: `kubectl describe scaledobject <name> -n <ns>` and the expected `Active: true` condition

Mode: debug

Diagnose why a ScaledObject or ScaledJob is not scaling as expected.

Steps: 1. 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

2. Check the ScaledObject `Conditions` block:

  • `Active: false` → scaler is not detecting events (check trigger config and auth)
  • `Ready: false` → KEDA cannot reach the target deployment (check `scaleTargetRef.name`)
  • `Fallback: true` → metric fetch is failing; KEDA is using fallback replicas

3. Check HPA for `<unknown>` targets — indicates metrics adapter cannot reach the external source 4. Work through this checklist in order:

  • External source reachable from the KEDA namespace?
  • TriggerAuthentication secret exists and has correct keys?
  • `activationThreshold` too high for current event volume?
  • `minReplicaCount` preventing scale-to-zero?
  • Conflicting HPA on the same Deployment?
  • `cooldownPeriod` not yet elapsed?

5. State the most likely root cause with the exact field or resource to fix 6. 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.name` match an existing Deployment/StatefulSet?
  • Are `minReplicaCount` and `maxReplicaCount` consistent with the workload SLA?
  • Is `pollingInterval` appropriate for the trigger type (SQS charges per API call)?
  • Does the trigger `metadata` use 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: 0` justified? What is the cold-start latency?
  • Is `cooldownPeriod` long enough to prevent thrashing?
  • Is `advanced.restoreToOriginalReplicaCount: true` set if the ScaledObject may be deleted?
  • Are `activationThreshold`/`activationQueueLength` set to prevent premature activation on sparse events?
  • Is HPA `scaleDown.stabilizationWindowSeconds` configured 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: 1. 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)

2. Apply the KEDA vs HPA decision matrix from `references/keda.md` 3. Recommend the trigger type(s) and explain why 4. Size `pollingInterval`, `cooldownPeriod`, and `minReplicaCount` based

Read more
Ships withplatform-skills

A production-grade field handbook for platform, DevOps, SRE, and cloud engineers covering Kubernetes, Flux CD, Terraform, GitHub Actions, AWS, OPA/Rego, KEDA, Karpenter, supply chain security, Falco, observability, and more.

Get the whole plugin
Stats
69
Stars
13
Forks
Active
Maintenance
Shell
Language
Apache-2.0
License
5h ago
Last commit
6mo ago
Created

Repo: nitinjain999/platform-skills

Other skills on platform-skills.