Skip to content

[feature] Add configurable default base image for steps#737

Open
CodeVishal-17 wants to merge 5 commits intokubeflow:mainfrom
CodeVishal-17:feat/base-image-config-727
Open

[feature] Add configurable default base image for steps#737
CodeVishal-17 wants to merge 5 commits intokubeflow:mainfrom
CodeVishal-17:feat/base-image-config-727

Conversation

@CodeVishal-17
Copy link
Copy Markdown
Contributor

Summary

Fixes #727

Adds support for configuring the default base image used for pipeline steps.

Changes

  • Introduced base image resolution priority:

    • Step-level tag (image:...)
    • Pipeline settings (base_image)
    • Environment variable (DEFAULT_BASE_IMAGE)
    • Default fallback (python:3.12)
  • Updated compiler to use the resolved base image instead of a hardcoded default

  • Updated notebook processor to correctly apply fallback logic for step base images

Notes

  • Removed pod-based base image auto-detection logic
  • Maintains backward compatibility with existing default behavior

@google-oss-prow
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign ederign for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

A
feat: add configurable default base image for steps (settings > env > default)

Signed-off-by: Vishal <vishal.goyal7711@gmail.com>
@CodeVishal-17 CodeVishal-17 force-pushed the feat/base-image-config-727 branch from 90f9e3e to 31a9831 Compare April 1, 2026 16:24
@CodeVishal-17
Copy link
Copy Markdown
Contributor Author

@ada333 👋

As discussed, I've implemented the configurable base image support with priority:
step tag → settings → environment variable → default.

Would appreciate your review and feedback!

@google-oss-prow google-oss-prow bot added size/M and removed size/S labels Apr 1, 2026
Signed-off-by: Vishal <vishal.goyal7711@gmail.com>
@CodeVishal-17 CodeVishal-17 force-pushed the feat/base-image-config-727 branch from b63cde0 to c2cfabb Compare April 1, 2026 16:44
@ada333
Copy link
Copy Markdown
Collaborator

ada333 commented Apr 1, 2026

@CodeVishal-17 thanks! Could you also add the UI changes so I can review it all at once?

…efaults)

Signed-off-by: Vishal <vishal.goyal7711@gmail.com>
@CodeVishal-17
Copy link
Copy Markdown
Contributor Author

@CodeVishal-17 thanks! Could you also add the UI changes so I can review it all at once?

@ada333 thanks! I’ve added the UI updates for base image configuration, including system and pipeline defaults. Would love your feedback.

Copy link
Copy Markdown
Collaborator

@ada333 ada333 left a comment

Choose a reason for hiding this comment

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

@CodeVishal-17 thank you for the changes.
Please also add the default image setting in the jupyter lab settings and from the quick peak at your code I believe the UI will not display the default base image correctly.
BTW I am also thinking if there should be pipeline base image - that would be configurable on Left Panel I guess, I will discuss it with the team.

Copy link
Copy Markdown
Collaborator

@jesuino jesuino left a comment

Choose a reason for hiding this comment

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

This need more work on the client side. See CellMetadataEditor.tsx - it is not respecting the backend setting. I do believe the base image is hardcoded on client, you will need to retrieve it from the backend.

@ada333
Copy link
Copy Markdown
Collaborator

ada333 commented Apr 6, 2026

@CodeVishal-17 sorry for the confusion - so the solution should look like this (similar to cache setup):

  • On left panel there should be a field for a default image which by default will be either the env var or the constant with the default image
  • If the user set a base image for a specific step than it overrides the global pipeline config

…e UI updates

Signed-off-by: Vishal <vishal.goyal7711@gmail.com>
Signed-off-by: Vishal Goyal <vishal.goyal7711@gmail.com>
@CodeVishal-17
Copy link
Copy Markdown
Contributor Author

@ada333 thanks for the feedback!

I’ve added support for configuring the default base image via JupyterLab settings and updated the UI to correctly reflect the resolved value, including handling updates when the setting changes.

Copy link
Copy Markdown
Collaborator

@jesuino jesuino left a comment

Choose a reason for hiding this comment

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

Please check the changes, looks like it is not even compiling anymore. Please make it sure it builds locally. Thanks!

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feature] Add configurable default base image for steps

3 participants