katib
katib copied to clipboard
Katib Python SDK Specify Volume Mounts
/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 👍
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
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.
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?
@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 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.
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.
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: 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 intrain
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.
/area sdk
I can help with this issue :)
/assign