Skip to content

feat(helm): add keda.enabled flag and hpa/keda ownership disable support#906

Draft
HighonAces wants to merge 1 commit intollm-d:mainfrom
HighonAces:feat/disable-hpa-keda-creation
Draft

feat(helm): add keda.enabled flag and hpa/keda ownership disable support#906
HighonAces wants to merge 1 commit intollm-d:mainfrom
HighonAces:feat/disable-hpa-keda-creation

Conversation

@HighonAces
Copy link
Copy Markdown
Contributor

Adds an opt-out mechanism so external platforms (e.g. KServe) can exclusively own HPA and KEDA ScaledObject sub-resources for a target Deployment, while WVA continues to emit wva_desired_replicas metrics.

Changes:

  • values.yaml: add keda stanza (enabled: false by default) with full ScaledObject configuration; add ownership comments to hpa block
  • templates/hpa.yaml: add doc comment pointing to KServe guide
  • templates/keda.yaml (new): renders a keda.sh/v1alpha1 ScaledObject when keda.enabled=true; includes a helm fail guard that rejects hpa.enabled=true+keda.enabled=true simultaneously
  • tests/hpa_keda_ownership_test.yaml (new): helm-unittest tests for all four ownership combinations
  • docs/integrations/kserve-integration.md (new): integration guide documenting Phase 1 (KServe owns) and Phase 2 (WVA owns) migration

Supported ownership modes:
hpa.enabled=true, keda.enabled=false -> HPA only (default) hpa.enabled=false, keda.enabled=false -> no sub-resources (KServe mode) hpa.enabled=false, keda.enabled=true -> KEDA ScaledObject only hpa.enabled=true, keda.enabled=true -> helm error (rejected)

Adds an opt-out mechanism so external platforms (e.g. KServe) can
exclusively own HPA and KEDA ScaledObject sub-resources for a target
Deployment, while WVA continues to emit wva_desired_replicas metrics.

Changes:
- values.yaml: add keda stanza (enabled: false by default) with full
  ScaledObject configuration; add ownership comments to hpa block
- templates/hpa.yaml: add doc comment pointing to KServe guide
- templates/keda.yaml (new): renders a keda.sh/v1alpha1 ScaledObject
  when keda.enabled=true; includes a helm fail guard that rejects
  hpa.enabled=true+keda.enabled=true simultaneously
- tests/hpa_keda_ownership_test.yaml (new): helm-unittest tests for all
  four ownership combinations
- docs/integrations/kserve-integration.md (new): integration guide
  documenting Phase 1 (KServe owns) and Phase 2 (WVA owns) migration

Supported ownership modes:
  hpa.enabled=true,  keda.enabled=false -> HPA only (default)
  hpa.enabled=false, keda.enabled=false -> no sub-resources (KServe mode)
  hpa.enabled=false, keda.enabled=true  -> KEDA ScaledObject only
  hpa.enabled=true,  keda.enabled=true  -> helm error (rejected)
@HighonAces
Copy link
Copy Markdown
Contributor Author

#878

@github-actions
Copy link
Copy Markdown
Contributor

This PR is marked as stale after 21d of inactivity. After an additional 14d of inactivity (7d to become rotten, then 7d more), it will be closed. To prevent this PR from being closed, add a comment or remove the lifecycle/stale label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Option to Disable HPA/KEDA Object Creation When Managed Externally (e.g., by KServe)

1 participant