Annotations and controller selection
Annotations are Kubernetes string values. Place them on the resource named below; a controller-selection annotation on a Pod is not equivalent to one on its ScaledObject.
Chart settings are listed in Helm configuration; resource fields are listed in the Kubernetes API catalog.
| Annotation / field | Resource and values | Effect / precedence |
|---|---|---|
autoscaling.kedify.io/class | ScaledObject; "hpa" or "kpa" | Overrides installation default. KEDA owns generated HPA/KPA transition. ScalingGroup membership requires HPA; see the fallback task. |
autoscaling.kedify.io/sync-period-seconds | KPA-selected ScaledObject; integer string from "1" through "3600" | Cannot be below the configured KPA minimum (documented default 5 seconds). Without it, the controller-wide period applies (documented default 15 seconds). Distinct from KEDA polling/activation. |
prp.kedify.io/reconcile | Target Pod/template; "enabled" | Opts into PRP when annotated pods are required. |
pra.kedify.io/reconcile | Target Pod/template; "enabled" | Opts into PRA when its annotation requirement is enabled. PRA’s spec.paused is an API field, not an annotation. |
autoscaling.keda.sh/paused | ScaledObject, ScaledJob; "true" | Pauses the applicable scaling controller under the versioned KEDA contract. On ScalingPolicy, pauses policy application rather than its targets directly. |
autoscaling.keda.sh/paused-replicas | ScaledObject; integer string | Pins paused replica behavior under the selected KEDA version; account for workload capacity. |
keda.kedify.io/pause-resume-at | Paused target; RFC3339 timestamp string | Resume at an absolute time, including timezone. |
keda.kedify.io/pause-resume-after | Paused target; Go-duration string such as "1h" | Relative resume delay; controller resolves an absolute time. Not a stable repeated GitOps schedule. |
keda.kedify.io/paused-reason | Paused target; text string | Context for maintenance; removed when resumed. |
Controller selection example
Section titled “Controller selection example”metadata: annotations: autoscaling.kedify.io/class: "kpa" autoscaling.kedify.io/sync-period-seconds: "15"Use select KPA, HPA rollback, and ScalingGroup fallback for the complete transition. Do not manually author a generated KPA.
Maintenance example
Section titled “Maintenance example”metadata: annotations: autoscaling.keda.sh/paused: "true" keda.kedify.io/pause-resume-after: "1h" keda.kedify.io/paused-reason: "Planned maintenance"If both resume-at and resume-after are present, the documented controller uses the earlier time. Follow pause and resume scaling to verify removal and recovery. A source owner that continually restores a pause annotation can defeat the intended resume; coordinate reconciliation ownership.
For PRP setup, add opt-in to the pod template when required so replacement pods inherit it. For PRA, use the enablement task and its API pause field.