argoproj / argoproj/argo-workflows

Lint fails on global output parameter in wft

Open
#13,997 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/cli area/workflow-templates
Dominant language
Go
Stars
17k
Forks
3.7k
Avg merge
1d 20h
Merged PRs (30d)
138

Description

Pre-requisites
  • I have double-checked my configuration
  • I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
  • I have searched existing issues and could not find a match for this bug
  • I'd like to contribute the fix myself (see contributing guide)
What happened? What did you expect to happen?

argo lint fails on a workflow template that I am able to kubectl apply and is working in a workflow!

More details in the discussion #13870

Version(s)

v3.5.10

Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflow that uses private images.
---
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: workflow-template-with-global-output-parameter-lint-fails
spec:
  templates:
    - name: test-one
      steps:
        - - name: hello-test-1
            template: hello1
          - name: hello-test-2
            template: hello2
            when: '{{workflow.outputs.parameters.variable}} == true'

    - name: hello1
      container:
        image: busybox
        command: [sh, -c]
        args: ["echo hello test 1"]

    - name: hello2
      container:
        image: busybox
        command: [sh, -c]
        args: ["echo hello test 2"]
Logs from the workflow controller
The bug is not in the workflow execution, but in `argo lint`.
Logs from in your workflow's wait container
The bug is not in the workflow execution, but in `argo lint`.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the minimal WorkflowTemplate YAML and the argo lint command, then inspect the lint validation path related to workflow.outputs.parameters.variable. Done means argo lint accepts this valid template without breaking the existing kubectl apply or workflow execution behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.