feat: support per-route container image override#47
Open
dcruver wants to merge 1 commit intocodice:mainfrom
Open
feat: support per-route container image override#47dcruver wants to merge 1 commit intocodice:mainfrom
dcruver wants to merge 1 commit intocodice:mainfrom
Conversation
Add optional spec.image field to IntegrationRoute CRD. When set, the route deployment uses the specified container image instead of the cluster-wide default from keip-controller-props ConfigMap. This enables multiple applications with different classpaths to coexist in the same keip cluster without requiring separate controller instances. Changes: - CRD: add spec.image (string, optional) to v1alpha2 schema - Webhook: resolve image from spec.image with fallback to global default - Tests: verify per-route override and default fallback behavior
a-asaad
approved these changes
Feb 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an optional
spec.imagefield to the IntegrationRoute CRD, allowing individual routes to specify their own container image instead of using the cluster-wide default.Motivation
Currently, all IntegrationRoutes in a keip cluster share the same container image defined in
keip-controller-props. This means if you have multiple applications with different classpaths (e.g., different custom beans or dependencies), you must either:Neither is ideal. Per-route images let different applications coexist naturally in the same cluster.
Changes
operator/crd/crd.yaml): Addedspec.image(optional string) to v1alpha2 schemawebapp/core/sync.py): Resolve image fromspec.imagewith fallback to globalINTEGRATION_CONTAINER_IMAGEwebapp/core/test/test_sync.py): Two new tests verifying override and default fallbackUsage
When
spec.imageis omitted, behavior is unchanged — the global default from the controller ConfigMap is used.Backward Compatibility
Fully backward compatible. The field is optional with no default in the CRD schema. Existing IntegrationRoutes without
spec.imagecontinue to work exactly as before.