katib icon indicating copy to clipboard operation
katib copied to clipboard

Katib Python SDK Specify Volume Mounts

Open bwhartlove opened this issue 1 year ago • 14 comments

/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 👍

bwhartlove avatar Dec 12 '23 13:12 bwhartlove

You can specify the volume mounts via create_experiment API.

https://github.com/kubeflow/katib/blob/46173463027e4fd2e604e25d7075b2b31a702049/sdk/python/v1beta1/kubeflow/katib/api/katib_client.py#L78

tenzen-y avatar Dec 22 '23 06:12 tenzen-y

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.

bwhartlove avatar Dec 22 '23 13:12 bwhartlove

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:

https://github.com/kubeflow/katib/blob/46173463027e4fd2e604e25d7075b2b31a702049/sdk/python/v1beta1/kubeflow/katib/api/katib_client.py#L135

@johnugeorge @andreyvelich WDYT?

tenzen-y avatar Dec 26 '23 11:12 tenzen-y

@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

andreyvelich avatar Jan 02 '24 18:01 andreyvelich

@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.

bwhartlove avatar Jan 02 '24 19:01 bwhartlove

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.

github-actions[bot] avatar Apr 01 '24 20:04 github-actions[bot]

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

andreyvelich avatar Apr 02 '24 14:04 andreyvelich

@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[bot] avatar Apr 02 '24 14:04 google-oss-prow[bot]

/area sdk

andreyvelich avatar Apr 02 '24 14:04 andreyvelich

I can help with this issue :)

Electronic-Waste avatar Apr 08 '24 05:04 Electronic-Waste

/assign

Electronic-Waste avatar Apr 08 '24 05:04 Electronic-Waste