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

Make runtime parameters optional for unresolved references #426

Open
Ankitha-Krisshnan opened this issue Jan 3, 2025 · 0 comments
Open

Comments

@Ankitha-Krisshnan
Copy link
Contributor

Ankitha-Krisshnan commented Jan 3, 2025

Is your feature request related to a problem? Please describe.

We want to be able to reference an artifact produced by a previous run of the same pipeline.

Currently, this can be achieved using pipeline dependencies:

apiVersion: pipelines.kubeflow.org/v1alpha6
kind: RunConfiguration
metadata:
  name: recursive-rc
spec:
  run:
    pipeline: ...
    artifacts:
    - name: examples
      path: ...
    runtimeParameters:
    - name: examples_location
      valueFrom:
        runConfigurationRef:
          name: recursive-rc
          outputArtifact: examples

Unfortunately, referencing an output artifact from the same RunConfiguration as a runtime parameter requires the artifact to exist before it can be referenced. This creates a challenge for the first pipeline run, in which the RunConfiguration must be deployed with only the artifact definition.

Describe the solution you'd like
We propose a way of marking some runtime parameters as optional, to handle cases where the artifact might not exist yet. Example:

...
    runtimeParameters:
    - name: examples_location
      valueFrom:
        runConfigurationRef:
          name: recursive-rc
          outputArtifact: examples
          optional: true

This would allow a Run or RunSchedule to be created even if some optional references aren't resolved, omitting those parameters. The pipeline would then detect if the parameter was passed and decide on the appropriate action (e.g., resume if an artifact is passed).

Additional context
Referencing an output artifact from a previous pipeline run in a current run as a runtime parameter is part of work to explore maintaining state between model training runs. This can be used to resume training or other use cases where new data becomes available at a later time, but where we want to avoid reprocessing old data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant