-
Notifications
You must be signed in to change notification settings - Fork 444
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
[Proposal] Improve the UX for the katib-config #2150
Comments
I think, it is very interesting idea. But, users will lose ability to modify Katib Config at runtime (as we mentioned in this doc: https://www.kubeflow.org/docs/components/katib/katib-config/), right ? Which means if users implement custom Suggestion and want to use it with Katib, they have to modify config and restart the controller. Do we have any workaround for it ? |
Thanks for raising this! Personally, prefer keeping a configmap. But I think we could refine the config structure. |
Thank you for your feedback! @andreyvelich I think that users can modify the katib-config at runtime since this proposal only contains changing the katib-config schema. |
Thanks for your suggestions! @gaocegege We keep using the configmap after my proposal is implemented. ---
apiVersion: v1
kind: ConfigMap
metadata:
name: katib-config
namespace: kubeflow
data:
katib-config.yaml: |
apiVersion: config.katib.kubeflow.org/v1beta1
kind: KatibConfig
metrics-collector-sidecar:
- name: StdOut
image: "docker.io/kubeflowkatib/file-metrics-collector:latest"
suggestion:
- name: random
image: "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
resources:
limits:
memory: 200Mi
early-stopping:
- name: medianstop
image: "docker.io/kubeflowkatib/earlystopping-medianstop:latest"
... |
Thanks for the clarification @tenzen-y, that might work. |
@andreyvelich Yes, you're right 👍 |
If @kubeflow/wg-automl-leads don't have any objections, I'd like to work on this. After that, I'll work on #2149. |
Sure, thank you for your contributions @tenzen-y! One question that I might have, do we want to include only Cert Generator args to Katib Config, as you mentioned here: #2149 (comment) ? Do we want to still use |
@tenzen-y To confirm: So for any new change to be made in config, users have to either do Btw, this would change the current configmap structure which needs to be added in release notes. I don't think, there is any problem with that though. |
@andreyvelich That's a good point. Ideally, migrating all args to katib-config would be good, although the backward compatibility will be loset. wdyt? |
@johnugeorge Yes, we keep using pure YAML, not CRD. So, users need to build manifests with
Sounds great. Let's point this out in a release note. |
Sounds good |
@tenzen-y @johnugeorge I think, we need to decide purpose of Katib Config from the Katib user perspective. |
@andreyvelich IMO, all options for the katib can be modified in KatibConfig would be useful. |
Makes sense, let's have unify place for all Katib settings. |
Awesome! Let's go ahead! |
Through some more consideration, I'd like to change the proposed design like the following: apiVersion: config.katib.kubeflow.org/v1beta1
kind: KatibConfig
static:
metricsAddr: ":8080"
injectSecurityContext: false
...
dynamic:
metrics-collector-sidecar:
- name: StdOut
image: "docker.io/kubeflowkatib/file-metrics-collector:latest"
suggestion:
- name: random
image: "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
resources:
limits:
memory: 200Mi
early-stopping:
- name: medianstop
image: "docker.io/kubeflowkatib/earlystopping-medianstop:latest"
... In the above new design, we put options that users need to restart the katib-controller inside This means we move options specifying via katib-controller flags to @kubeflow/wg-automl-leads wdyt? |
@kubeflow/wg-automl-leads ping |
Sorry for the late reply @tenzen-y. Also, (if we decide to use them) maybe we should use WDYT @tenzen-y @johnugeorge @gaocegege ? |
Thanks for the response! @andreyvelich
The
I think |
I meant, can this additional fields (runtime and initialization) overcomplicate Katib Config ? Or it provides more clarity how these settings are used ? |
Ah, I see. Thanks for the clarification! |
I'll move this forward with |
I just came back here. I will create a PR within this week. |
That would be great @tenzen-y, thank you for your hard work! |
Thanks! |
@tenzen-y We've been discussing with @johnugeorge about naming.
WDYT @tenzen-y @johnugeorge ? |
@andreyvelich @johnugeorge It looks good :) The shorter name increases visibility. Thank you for a great suggestion! |
/kind feature
Describe the solution you'd like
[A clear and concise description of what you want to happen.]
Currently, YAML (ConfigMap) and JSON (Options) are mixed in katib-config.
IMO, this situation does not have good UX.
So I'd like to enable setting parameters using only YAML.
My proposal is two steps:
This way is similar to the component-config of kubebuilder and is a popular way, although we don't depend on the component-config API in the katib-config.
Note: The
config.katib.kubeflow.org/v1beta1 KatibConfig
isn't a CustomResource, just a YAML. So the maintenance costs wouldn't increase.Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Love this feature? Give it a 👍 We prioritize the features with the most 👍
The text was updated successfully, but these errors were encountered: