Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Katib Python SDK Specify Volume Mounts #2247

Open
bwhartlove opened this issue Dec 12, 2023 · 14 comments
Open

Katib Python SDK Specify Volume Mounts #2247

bwhartlove opened this issue Dec 12, 2023 · 14 comments
Assignees
Labels
area/sdk good first issue Good for newcomers help wanted Extra attention is needed kind/feature

Comments

@bwhartlove
Copy link

/kind feature

Describe the solution you'd like
I'd like to be able to specify default volume mounts for secrets into each of trial pod that runs during an experiment. As far as I can tell from the documentation and my experiments thus far, there is no way to achieve this. However, if I am missing something I would greatly appreciate some clarification. Thanks!

Anything else you would like to add:


Love this feature? Give it a 👍 We prioritize the features with the most 👍

@tenzen-y
Copy link
Member

You can specify the volume mounts via create_experiment API.

@bwhartlove
Copy link
Author

bwhartlove commented Dec 22, 2023

Thanks for the info! In order to do this, do I need to write a YAML spec? I have not found any examples online about mounting an existing secret into the experiment trial pods. From what I can discern given the documentation, I would need to write a TrialSpec YAML to achieve this. I was hoping to have the ability to simply specify a volume mount directly in the experiment creation function.

@tenzen-y
Copy link
Member

Thanks for the info! In order to do this, do I need to write a YAML spec?

Yes, we need to write the Experiment YAML spec.

I was hoping to have the ability to simply specify a volume mount directly in the experiment creation function.

I see. It might be useful to be available to specify the volume configuration via the tune API:

@johnugeorge @andreyvelich WDYT?

@andreyvelich
Copy link
Member

@bwhartlove You can check this example on how to use create_experiment() API which gives you access to all Experiment and Trial Spec: https://github.com/kubeflow/katib/blob/master/examples/v1beta1/sdk/cmaes-and-resume-policies.ipynb

If you need to set volume mount for your Trials, you can add it to the trial_spec field.

If we want to provide simple argument in the tune function to add volume mounts, do you have any ideas how we should do it ?
That should be very simple for user to understand without prior knowledge of Kubernetes Pod specs.
For example, for Trial environments user can set it via dictionary or as Kubernetes V1EnvFromSource parameter.
cc @droctothorpe

@bwhartlove
Copy link
Author

@andreyvelich Thanks for the reply and the information. I can't say I am familiar enough with the underlying architecture to provide a clear solution to the issue. I just imagined having another parameter to the tune function that allowed you to specify volumes for the trial pods. Kubeflow has an API for this with their pipelines, and it would be nice to have a similar function in Katib.

Copy link

github-actions bot commented Apr 1, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@andreyvelich
Copy link
Member

Maybe it worths to re-use similar storage_config like we did in train API..
E.g. we can name it as: trial_storage_config.
Any other suggestions are welcome!

Any thoughts @tenzen-y @droctothorpe @johnugeorge @bwhartlove ?

/help
/good-first-issue

Copy link

@andreyvelich:
This request has been marked as suitable for new contributors.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-good-first-issue command.

In response to this:

Maybe it worths to re-use similar storage_config like we did in train API..
E.g. we can name it as: trial_storage_config.
Any other suggestions are welcome!

Any thoughts @tenzen-y @droctothorpe @johnugeorge @bwhartlove ?

/help
/good-first-issue

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@google-oss-prow google-oss-prow bot added good first issue Good for newcomers help wanted Extra attention is needed labels Apr 2, 2024
@andreyvelich
Copy link
Member

/area sdk

@Electronic-Waste
Copy link
Member

Electronic-Waste commented Apr 8, 2024

I can help with this issue :)

@Electronic-Waste
Copy link
Member

/assign

@Electronic-Waste
Copy link
Member

Maybe it worths to re-use similar storage_config like we did in train API..

Since train API always mount PVC to pods and usually allocates 10GiB for datasets and model, it seems that we can't simply reuse the volume mounting logic in train API. WDYT👀 @andreyvelich

Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@andreyvelich
Copy link
Member

/remove-lifecycle stale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/sdk good first issue Good for newcomers help wanted Extra attention is needed kind/feature
Projects
None yet
Development

No branches or pull requests

4 participants