Detect if argo workflow is given unused parameters

253 views Asked by At

My team runs into a recurring issue where if we mis-spell a parameter for our argo workflows, that parameter gets ignored without error. For example, say I run the following submission command, where the true (optional) parameter is validation_data_config:

argo submit --from workflowtemplate/training \
    -p output=$( artifacts resolve-url $BUCKET $PROJECT $TAG) \
    -p tag=${TAG} \
    -p training_config="$( yq . training.yaml )" \
    -p training_data_config="$( yq . train-data.yaml )" \
    -p validation-data-config="$( yq . validation-data.yaml )" \
    -p wandb-project="cyclegan_c48_to_c384" \
    -p cpu=4 \
    -p memory="15Gi" \
    --name "${NAME}" \
    --labels "project=${PROJECT},experiment=${EXPERIMENT},trial=${TRIAL}"

The validation configuration is ignored and the job is run without validation metrics because I used hyphens instead of underscores.

I also understand the parameters should use consistent hyphen/underscore naming, but we've also had this happen with e.g. the "memory" parameter.

Is there any way to detect this automatically, to have the submission error if a parameter is unused, or even to get a list of parameters for a given workflow template so I can write such detection myself?

0

There are 0 answers