-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[backend] conditions in componet.yaml does not work properly #11009
Comments
This issue is critical to us since we have hundreds of pipelines that use the conditions to conditionally preprocess datasets. @juliusvonkohout FYI. |
@rimolive maybe something for 1.9.1 |
@juliusvonkohout FYI It looks like central dashboard does not support |
@daro1337 you might want to ask @thesuperzapper about this. |
I was able to successfully pass a default value given this snipped. @daro1337
|
FYI @juliusvonkohout @thesuperzapper 😄 . In other words this below fails def test_kfp_busybox(compile_pipeline):
@dsl.pipeline()
def _pipeline(
file: str,
line_number: bool,
):
yamlpath="tests/_fixtures/busybox.yaml"
test = config_file_step(
# component_text=kserve_operation_component,
path=yamlpath,
params={
"file": file,
"line_number": line_number,
},
name="cat-hosts",
)
compile_pipeline(_pipeline) But this works def test_kfp_busybox(compile_pipeline):
@dsl.pipeline()
def _pipeline(
file: str = default_value, # Only default values are accepted here
line_number: bool = default_value, # Only default value accepted here
):
# Any default values defined in the component below
# are being ignored. Also optionals are flagged as required.
yamlpath="tests/_fixtures/busybox.yaml"
test = config_file_step(
# component_text=kserve_operation_component,
path=yamlpath,
params={
"file": file,
"line_number": line_number,
},
name="cat-hosts",
)
compile_pipeline(_pipeline) However, the first version compiles and even the default values are visible in the Intermediate representation YAML, making this a bug or at the very least some unexpected edge case. Note: There seem to be two separate issues going on here, first the optional and default values from the components are being ignored. In our example the - if:
cond:
isPresent: line_number
then:
- -n |
I am still busy with releasing Kubeflow 1.9.1 so for now i can only suggest to retry with the 1.9.1 RC (KFP 2.3.0) and the 2.9.0 SDK. |
@daro1337 I guess it's a good try to retest this again. Thanks @juliusvonkohout. We will retest asap. Probably the biggest blocker we have is #10050 |
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. |
I don't believe this issue is fixed? Can someone confirm? |
@thesuperzapper I conducted a test today and can confirm that the issue exists in Kubeflow version |
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. |
This is still an issue. |
Environment
Kubeflow Platform (EKS)
v2.2.0
v2.8.0
Steps to reproduce
Conditions in the
component.yaml
file are not working correctly. It appears that the argo-workflow component takes the "IF" condition argument literally.This is something that worked in kubeflow v1.8.0 and KFP 1.8.X (argoworkflow manifest)
here we I wrote dummy pipeline that prints /etc/hosts file. If
line_number=true
it should add-n
argument tocat
executable to print file with line numbers.Output:
as you can see here:
cat: can't open '{"IfPresent": {"InputName": "line_number", "Then": ["-n"]}}': No such file or directory
Expected result
Print file with line numbers for instance:
Materials and Reference
Impacted by this bug? Give it a 👍.
The text was updated successfully, but these errors were encountered: