I am exploring Vertex AI Pipelines for running machine learning training jobs. The kubeflow pipeline docs are clear about how to parameterize the commands/arguments of a container.
Is it also possible to pass a input to an environmental variable or image name of a component? This swagger schema for a component suggests that this can be done, but this example fails:
implementation:
container:
image: {concat: ["us.gcr.io/vcm-ml/emulator", {inputValue: tag}]
# command is a list of strings (command-line arguments).
# The YAML language has two syntaxes for lists and you can use either of them.
# Here we use the "flow syntax" - comma-separated strings inside square brackets.
command: [
python3,
# Path of the program inside the container
/pipelines/component/src/program.py,
--input1-path,
{inputPath: input_1},
--param1,
--output1-path,
]
env:
NAME: {inputValue: env}
inputs:
- {name: tag, type: String}
- {name: env, type: String}
- {name: input_1, type: String, description: 'Data for input_1'}
Is passing an {inputValue}
to container.env
or container.tag
supported. Alternatively, is it possible to add an environment variable or change the image name using the V2 python DSL.