Skip to content

argo lint --offline does not work manifests from stdin #12819

@phardy

Description

@phardy

Pre-requisites

  • I have double-checked my configuration
  • I can confirm the issue exists when I tested with :latest
  • 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 --offline works fine when given manifests on the command line, but I can't make it find anything to lint when manifests are passed in on stdin. Here's using release 3.5.5 and the hello-world workflow from https://argo-workflows.readthedocs.io/en/latest/walk-through/hello-world/

; ./argo version
argo: v3.5.5
  BuildDate: 2024-02-29T21:37:24Z
  GitCommit: c80b2e91ebd7e7f604e88442f45ec630380effa0
  GitTreeState: clean
  GitTag: v3.5.5
  GoVersion: go1.21.7
  Compiler: gc
  Platform: darwin/amd64
; ./argo lint hello-world.yaml
✔ no linting errors found!
; ./argo lint --offline ./hello-world.yaml
✔ no linting errors found!
; cat hello-world.yaml | ./argo lint -
✔ no linting errors found!
; cat hello-world.yaml | ./argo lint --offline -
✖ found nothing to lint in the specified paths, failing...
; cat hello-world.yaml | ./argo lint - --offline
✖ found nothing to lint in the specified paths, failing...

I've also attempted using the latest docker image:

; docker run --rm argoproj/argocli:latest version
argo: untagged
  BuildDate: 2024-03-17T17:29:15Z
  GitCommit: 87899e5dd66c73d14ef3f4acbfa25573d8cc3d4c
  GitTreeState: clean
  GitTag: untagged
  GoVersion: go1.21.8
  Compiler: gc
  Platform: linux/arm64
; docker run --rm -v $(pwd)/hello-world.yaml:/tmp/hello-world.yaml argoproj/argocli:latest lint --offline /tmp/hello-world.yaml
✔ no linting errors found!
; cat hello-world.yaml | docker run -i --rm argoproj/argocli:latest lint --offline -
✖ found nothing to lint in the specified paths, failing...

Version

v3.5.5, latest

Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.

apiVersion: argoproj.io/v1alpha1
kind: Workflow                  # new type of k8s spec
metadata:
  generateName: hello-world-    # name of the workflow spec
spec:
  entrypoint: whalesay          # invoke the whalesay template
  templates:
    - name: whalesay              # name of the template
      container:
        image: docker/whalesay
        command: [ cowsay ]
        args: [ "hello world" ]
        resources: # limit the resources
          limits:
            memory: 32Mi
            cpu: 100m

Logs from the workflow controller

n/a

Logs from in your workflow's wait container

n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions