Skip to content

feat(streams-bootstrap): add KEDA triggers and scaling modifiers - #659

Open
raphala wants to merge 4 commits into
mainfrom
feat/add-explicit-triggers-scaling-modifiers
Open

feat(streams-bootstrap): add KEDA triggers and scaling modifiers#659
raphala wants to merge 4 commits into
mainfrom
feat/add-explicit-triggers-scaling-modifiers

Conversation

@raphala

@raphala raphala commented Jul 31, 2026

Copy link
Copy Markdown

No description provided.

@raphala
raphala marked this pull request as ready for review August 6, 2026 15:17
@raphala
raphala requested a review from disrupted as a code owner August 6, 2026 15:17
@raphala raphala changed the title feat(streams-bootstrap): support ScaledObject helm chart changes feat(streams-bootstrap): add KEDA triggers and scaling modifiers to StreamsAppAutoScaling Aug 6, 2026
@raphala raphala changed the title feat(streams-bootstrap): add KEDA triggers and scaling modifiers to StreamsAppAutoScaling feat(streams-bootstrap): add KEDA triggers and scaling modifiers Aug 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class support for configuring KEDA autoscaling behavior (explicit triggers, additional triggers, and composite metric scaling modifiers) for streams-bootstrap-based apps, and updates the generated schema/docs and tests accordingly.

Changes:

  • Extend StreamsAppAutoScaling to support triggers (override generated Kafka lag triggers) and scaling_modifiers (KEDA composite metrics).
  • Add/expand tests for autoscaling trigger and scaling modifier generation for StreamsApp and ConsumerApp.
  • Update JSON schemas and documentation examples/defaults to reflect the new autoscaling fields and semantics.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/components/streams_bootstrap/test_streams_app.py Adds generation tests for triggers, additionalTriggers, and scalingModifiers in StreamsApp autoscaling values.
tests/components/streams_bootstrap/test_consumer_app.py Adds generation test for triggers + scalingModifiers in ConsumerApp autoscaling values.
kpops/components/streams_bootstrap/common/model.py Extends the autoscaling model with triggers, typed additional_triggers, and scaling_modifiers.
docs/docs/schema/pipeline.json Updates published schema: additionalTriggers item type and adds triggers/scalingModifiers fields and descriptions.
docs/docs/schema/defaults.json Mirrors pipeline schema updates for defaults schema output.
docs/docs/resources/pipeline-defaults/defaults.yaml Updates default examples for consumer-app and streams-app autoscaling fields and comments.
docs/docs/resources/pipeline-defaults/defaults-streams-app.yaml Updates streams-app defaults example to include triggers/additionalTriggers/scalingModifiers guidance.
docs/docs/resources/pipeline-defaults/defaults-consumer-app.yaml Updates consumer-app defaults example to include triggers/additionalTriggers/scalingModifiers guidance.
docs/docs/resources/pipeline-components/streams-app.yaml Updates streams-app component example values for the new autoscaling fields.
docs/docs/resources/pipeline-components/sections/values-streams-app.yaml Updates streams-app values section snippet for the new autoscaling fields.
docs/docs/resources/pipeline-components/sections/values-consumer-app.yaml Updates consumer-app values section snippet for the new autoscaling fields.
docs/docs/resources/pipeline-components/pipeline.yaml Updates pipeline example(s) for consumer-app and streams-app autoscaling values.
docs/docs/resources/pipeline-components/consumer-app.yaml Updates consumer-app component example values for the new autoscaling fields.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +168 to 173
triggers: SerializeAsOptional[list[dict[str, Any]]] = []
additional_triggers: SerializeAsOptional[list[dict[str, Any]]] = []
scaling_modifiers: dict[str, Any] | None = None

model_config: ClassVar[ConfigDict] = ConfigDict(extra="allow")

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants