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

Support endpoint,bucket fields for artifact access in runtime workflow status #6255

Closed
zijianjoy opened this issue Jun 30, 2021 · 24 comments · Fixed by #6299
Closed

Support endpoint,bucket fields for artifact access in runtime workflow status #6255

zijianjoy opened this issue Jun 30, 2021 · 24 comments · Fixed by #6299
Assignees
Labels
type/feature Feature request

Comments

@zijianjoy
Copy link

zijianjoy commented Jun 30, 2021

Summary

In this PR https://github.com/argoproj/argo-workflows/pull/3377/files#diff-e513d8bd9786d929b66439f58e6a961bc77e4971998657573fbb047fe2e399d8, S3Artifact is removed because they are not being used. However, UI is unable to get bucket name from runtime workflow_manifest, therefore UI cannot load artifact preview using workflow_manifest. Suggest to include bucket and endpoint fields to status, which are needed for fetching artifact content from UI. See example:

status:
  artifactRepositoryRef:
    default: true
    bucket: 'mlpipeline'
    endpoint: 'minio-service.kubeflow:9000'

Use Cases

Kubeflow Pipelines recently upgraded argo from 2.12.9 to 3.1.0. During the upgrade, one of our existing features are broken because of fields changes in interface artifact. Previously we were able to construct request to fetch file from storage based on runtime workflow_manifest: https://github.com/kubeflow/pipelines/blob/120da92d0c07f2a4b3abdd61377dbbeb2085571a/frontend/src/components/ArtifactPreview.tsx#L121-L147. workflow_manifest was self-contained to describe the workflow information, however, new argo template only contains key: refer to example kubeflow/pipelines#5930 (comment).

Reference

kubeflow/pipelines#5944
kubeflow/pipelines#5930

cc @Bobgy


Message from the maintainers:

Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@zijianjoy zijianjoy added the type/feature Feature request label Jun 30, 2021
@zijianjoy zijianjoy changed the title Support bucket field for artifact storage path in runtime workflow status Support endpoint,bucket fields for artifact storage path in runtime workflow status Jun 30, 2021
@terrytangyuan
Copy link
Member

terrytangyuan commented Jun 30, 2021

The fields were removed since they were not being used at all in the codebase and these changes have been there for a year since v2.10. I am not sure if it's a good idea to rely on those fields.

@zijianjoy zijianjoy changed the title Support endpoint,bucket fields for artifact storage path in runtime workflow status Support endpoint,bucket fields for artifact access in runtime workflow status Jun 30, 2021
@zijianjoy
Copy link
Author

@terrytangyuan Hello Terry, instead of bringing these fields back to the old format, can we support providing the content of bucket and endpoint as part of configMap in ArtifactRepositoryRef?

Please see the status->ArtifactRepositoryRef in kubeflow/pipelines#5930 (comment): If we have bucket and endpoint information here, it will be beneficial to provide file download and preview ability.

Reference:
https://github.com/argoproj/argo-workflows/blob/4e450e250168e6b4d51a126b784e90b11a0162bc/docs/artifact-repository-ref.md

@Bobgy
Copy link
Contributor

Bobgy commented Jun 30, 2021

The main information KFP wants is to parse workflow status and understand artifact source, URI, endpoint, secrets info.

I agree it's not a good idea to duplicate them per artifact.
However, IIUC right now the other information can only be found in argo runtime env. What if someone changes some config? How do we know the original artifact repository a workflow ran as.
Therefore this feature request is to ask argo to persist the resolved artifact repository info to workflow status (as a separate field)

@Bobgy
Copy link
Contributor

Bobgy commented Jul 3, 2021

Hi @alexec @sarabala1979, this is a blocker for Kubeflow Pipelines to upgrade to argo v3.1.x.
What do you think about it?

@terrytangyuan
Copy link
Member

Sounds good to me but I'll defer to others to decide whether to add those additional fields.

@alexec
Copy link
Contributor

alexec commented Jul 6, 2021

One of the secondary benefits of removing this information is the reduced size of NodeStatus. I'm not keen to loose that because (a) big workflows are a performance issue and (b) that data can be found in the namespace:

https://github.com/argoproj/argo-workflows/blob/master/server/artifacts/artifact_server.go#L157

@Bobgy
Copy link
Contributor

Bobgy commented Jul 7, 2021

Hi @alexec, for clarification, we propose to add the information back to workflow status, rather than node status, so size is not a concern as each workflow only records the status once.

@alexec
Copy link
Contributor

alexec commented Jul 7, 2021

That seems sensible. Would you like to raise a PR?

alexec added a commit to alexec/argo-workflows that referenced this issue Jul 7, 2021
@alexec alexec self-assigned this Jul 7, 2021
@alexec
Copy link
Contributor

alexec commented Jul 7, 2021

Actually, hold-off from a PR, I can see a way to fix this AND use it to fix out a performance issue at the same time.

@alexec
Copy link
Contributor

alexec commented Jul 7, 2021

I've just pushed dev-6255. Can you please try argoproj/workflow-controller:dev-6255 and see if that is what you want?

@alexec alexec closed this as completed Jul 7, 2021
@alexec alexec reopened this Jul 7, 2021
@Bobgy
Copy link
Contributor

Bobgy commented Jul 8, 2021

Awesome, will have a try!

@zijianjoy
Copy link
Author

Thank you @alexec ! I tried the dev image and encountered an issue, is there anything we are missing?

Steps

  1. In our workflow-controller deployment, replace the image field with docker.io/argoproj/workflow-controller:dev-6255.
  2. Use the example workflow in https://argoproj.github.io/argo-workflows/examples/#dag.
  3. Encounter the following error: 'Error (exit code 2): open /argo/podmetadata/annotations: no such file or directory'

Full dag status yaml:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"argoproj.io/v1alpha1","kind":"Workflow","metadata":{"annotations":{},"name":"dag-diamond-1","namespace":"kubeflow","serviceAccountName":"pipeline-runner"},"spec":{"entrypoint":"diamond","templates":[{"container":{"command":["echo","{{inputs.parameters.message}}"],"image":"alpine:3.7"},"inputs":{"parameters":[{"name":"message"}]},"name":"echo"},{"dag":{"tasks":[{"arguments":{"parameters":[{"name":"message","value":"A"}]},"name":"A","template":"echo"},{"arguments":{"parameters":[{"name":"message","value":"B"}]},"dependencies":["A"],"name":"B","template":"echo"},{"arguments":{"parameters":[{"name":"message","value":"C"}]},"dependencies":["A"],"name":"C","template":"echo"},{"arguments":{"parameters":[{"name":"message","value":"D"}]},"dependencies":["B","C"],"name":"D","template":"echo"}]},"name":"diamond"}]}}
  creationTimestamp: "2021-07-08T04:58:59Z"
  generation: 3
  labels:
    workflows.argoproj.io/completed: "true"
    workflows.argoproj.io/phase: Error
    manager: workflow-controller
    operation: Update
    time: "2021-07-08T04:59:09Z"
  name: dag-diamond-1
  namespace: kubeflow
  resourceVersion: "25286133"
  selfLink: /apis/argoproj.io/v1alpha1/namespaces/kubeflow/workflows/dag-diamond-1
  uid: 9b3d593c-4195-4f0a-ba49-a0f978ca3447
spec:
  arguments: {}
  entrypoint: diamond
  templates:
  - container:
      command:
      - echo
      - '{{inputs.parameters.message}}'
      image: alpine:3.7
      name: ""
      resources: {}
    inputs:
      parameters:
      - name: message
    metadata: {}
    name: echo
    outputs: {}
  - dag:
      tasks:
      - arguments:
          parameters:
          - name: message
            value: A
        name: A
        template: echo
      - arguments:
          parameters:
          - name: message
            value: B
        dependencies:
        - A
        name: B
        template: echo
      - arguments:
          parameters:
          - name: message
            value: C
        dependencies:
        - A
        name: C
        template: echo
      - arguments:
          parameters:
          - name: message
            value: D
        dependencies:
        - B
        - C
        name: D
        template: echo
    inputs: {}
    metadata: {}
    name: diamond
    outputs: {}
status:
  artifactRepositoryRef:
    artifactRepository:
      archiveLogs: true
      s3:
        accessKeySecret:
          key: accesskey
          name: mlpipeline-minio-artifact
        bucket: mlpipeline
        endpoint: minio-service.kubeflow:9000
        insecure: true
        keyFormat: artifacts/{{workflow.name}}/{{workflow.creationTimestamp.Y}}/{{workflow.creationTimestamp.m}}/{{workflow.creationTimestamp.d}}/{{pod.name}}
        secretKeySecret:
          key: secretkey
          name: mlpipeline-minio-artifact
    default: true
  conditions:
  - status: "False"
    type: PodRunning
  - status: "True"
    type: Completed
  finishedAt: "2021-07-08T04:59:09Z"
  nodes:
    dag-diamond-1:
      children:
      - dag-diamond-1-4281134405
      displayName: dag-diamond-1
      finishedAt: "2021-07-08T04:59:09Z"
      id: dag-diamond-1
      name: dag-diamond-1
      outboundNodes:
      - dag-diamond-1-4197246310
      phase: Error
      progress: 1/1
      resourcesDuration:
        cpu: 1
        memory: 0
      startedAt: "2021-07-08T04:58:59Z"
      templateName: diamond
      templateScope: local/dag-diamond-1
      type: DAG
    dag-diamond-1-4197246310:
      boundaryID: dag-diamond-1
      displayName: D
      finishedAt: "2021-07-08T04:59:09Z"
      id: dag-diamond-1-4197246310
      message: 'omitted: depends condition not met'
      name: dag-diamond-1.D
      phase: Omitted
      startedAt: "2021-07-08T04:59:09Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Skipped
    dag-diamond-1-4230801548:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4197246310
      displayName: B
      finishedAt: "2021-07-08T04:59:09Z"
      id: dag-diamond-1-4230801548
      message: 'omitted: depends condition not met'
      name: dag-diamond-1.B
      phase: Omitted
      startedAt: "2021-07-08T04:59:09Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Skipped
    dag-diamond-1-4247579167:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4197246310
      displayName: C
      finishedAt: "2021-07-08T04:59:09Z"
      id: dag-diamond-1-4247579167
      message: 'omitted: depends condition not met'
      name: dag-diamond-1.C
      phase: Omitted
      startedAt: "2021-07-08T04:59:09Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Skipped
    dag-diamond-1-4281134405:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4230801548
      - dag-diamond-1-4247579167
      displayName: A
      finishedAt: "2021-07-08T04:59:02Z"
      id: dag-diamond-1-4281134405
      inputs:
        parameters:
        - name: message
          value: A
      message: 'Error (exit code 2): open /argo/podmetadata/annotations: no such file
        or directory'
      name: dag-diamond-1.A
      outputs:
        exitCode: "0"
      phase: Error
      progress: 1/1
      resourcesDuration:
        cpu: 1
        memory: 0
      startedAt: "2021-07-08T04:58:59Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod
  phase: Error
  progress: 1/1
  resourcesDuration:
    cpu: 1
    memory: 0
  startedAt: "2021-07-08T04:58:59Z"

@terrytangyuan
Copy link
Member

Did you also update --executor-image like in https://github.com/argoproj/argo-workflows/blob/master/manifests/namespace-install.yaml#L494 to docker.io/argoproj/workflow-controller:dev-6255?

@alexec
Copy link
Contributor

alexec commented Jul 8, 2021

@terrytangyuan is correct. I didn’t think you need to update the executor image, but you’ll need to update that too.

@zijianjoy
Copy link
Author

Thank you @terrytangyuan and @alexec !

I have updated the executor-image flag to the dev image too. This time the error has changed to the following:

dag-diamond-1-4281134405:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4230801548
      - dag-diamond-1-4247579167
      displayName: A
      finishedAt: "2021-07-08T16:25:55Z"
      id: dag-diamond-1-4281134405
      inputs:
        parameters:
        - name: message
          value: A
      message: 'ContainerCannotRun (exit code 127): OCI runtime create failed: container_linux.go:349:
        starting container process caused "exec: \"argoexec\": executable file not
        found in $PATH": unknown'
      name: dag-diamond-1.A
      outputs:
        exitCode: "0"
      phase: Error
      progress: 1/1
      resourcesDuration:
        cpu: 0
        memory: 0
      startedAt: "2021-07-08T16:25:50Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod

For the request in this thread, the artifactRepository has populated s3 detail now.

@zijianjoy
Copy link
Author

The existing executor-image is argoproj/argoexec:latest, which is different from workflow-controller, maybe I should use something different than docker.io/argoproj/workflow-controller:dev-6255 for --executor-image?

@terrytangyuan
Copy link
Member

Yes it's a typo and should be argoexec image instead of workflow-controller.

@zijianjoy
Copy link
Author

Thank you @terrytangyuan ! I validated that this dev image works for providing artifact info in status -> artifactRepositoryRef -> artifactRepository field. The new workflow run failed with 'Error (exit code 1): pods "dag-diamond-1-4281134405" is forbidden: User "system:serviceaccount:kubeflow:default" cannot patch resource "pods" in API group "" in the namespace "kubeflow"', but I think it is related to docker executor, and not related to this thread.

@Bobgy
Copy link
Contributor

Bobgy commented Jul 8, 2021

@zijianjoy the latest error message says kubeflow namespace's default service account do not have enough permissions.

The fix should be using a service account with enough permissions. E.g. pipeline-runner (deployed with kubeflow).

Change your workflow spec to add

spec:
  serviceAccountName: pipeline-runner

See https://argoproj.github.io/argo-workflows/workflow-rbac/

@zijianjoy
Copy link
Author

@Bobgy Yes I have added service account from the initial run, which confused me why this error still shows up. You can search "serviceAccountName":"pipeline-runner" in this comment #6255 (comment).

@Bobgy
Copy link
Contributor

Bobgy commented Jul 9, 2021

@zijianjoy from your resource, looks like you added the field in metadata, but it should be in spec.

@zijianjoy
Copy link
Author

@Bobgy Good catch! Yes I should add this field under spec, and the rerun is successful:

status:
  artifactRepositoryRef:
    artifactRepository:
      archiveLogs: true
      s3:
        accessKeySecret:
          key: accesskey
          name: mlpipeline-minio-artifact
        bucket: mlpipeline
        endpoint: minio-service.kubeflow:9000
        insecure: true
        keyFormat: artifacts/{{workflow.name}}/{{workflow.creationTimestamp.Y}}/{{workflow.creationTimestamp.m}}/{{workflow.creationTimestamp.d}}/{{pod.name}}
        secretKeySecret:
          key: secretkey
          name: mlpipeline-minio-artifact
    default: true
  conditions:
  - status: "False"
    type: PodRunning
  - status: "True"
    type: Completed
  finishedAt: "2021-07-09T17:22:34Z"
  nodes:
    dag-diamond-1:
      children:
      - dag-diamond-1-4281134405
      displayName: dag-diamond-1
      finishedAt: "2021-07-09T17:22:34Z"
      id: dag-diamond-1
      name: dag-diamond-1
      outboundNodes:
      - dag-diamond-1-4197246310
      phase: Succeeded
      progress: 4/4
      resourcesDuration:
        cpu: 17
        memory: 3
      startedAt: "2021-07-09T17:21:41Z"
      templateName: diamond
      templateScope: local/dag-diamond-1
      type: DAG
    dag-diamond-1-4197246310:
      boundaryID: dag-diamond-1
      displayName: D
      finishedAt: "2021-07-09T17:22:26Z"
      id: dag-diamond-1-4197246310
      inputs:
        parameters:
        - name: message
          value: D
      name: dag-diamond-1.D
      outputs:
        artifacts:
        - name: main-logs
          s3:
            key: artifacts/dag-diamond-1/2021/07/09/dag-diamond-1-4197246310/main.log
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 1
        memory: 0
      startedAt: "2021-07-09T17:22:24Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod
    dag-diamond-1-4230801548:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4197246310
      displayName: B
      finishedAt: "2021-07-09T17:22:08Z"
      id: dag-diamond-1-4230801548
      inputs:
        parameters:
        - name: message
          value: B
      name: dag-diamond-1.B
      outputs:
        artifacts:
        - name: main-logs
          s3:
            key: artifacts/dag-diamond-1/2021/07/09/dag-diamond-1-4230801548/main.log
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 2
        memory: 0
      startedAt: "2021-07-09T17:22:04Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod
    dag-diamond-1-4247579167:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4197246310
      displayName: C
      finishedAt: "2021-07-09T17:22:18Z"
      hostNodeName: gke-kfp-v2-compatible-pool-1-a19747a4-gflg
      id: dag-diamond-1-4247579167
      inputs:
        parameters:
        - name: message
          value: C
      name: dag-diamond-1.C
      outputs:
        artifacts:
        - name: main-logs
          s3:
            key: artifacts/dag-diamond-1/2021/07/09/dag-diamond-1-4247579167/main.log
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 3
        memory: 0
      startedAt: "2021-07-09T17:22:04Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod
    dag-diamond-1-4281134405:
      boundaryID: dag-diamond-1
      children:
      - dag-diamond-1-4230801548
      - dag-diamond-1-4247579167
      displayName: A
      finishedAt: "2021-07-09T17:21:54Z"
      hostNodeName: gke-kfp-v2-compatible-pool-1-a19747a4-lr0h
      id: dag-diamond-1-4281134405
      inputs:
        parameters:
        - name: message
          value: A
      name: dag-diamond-1.A
      outputs:
        artifacts:
        - name: main-logs
          s3:
            key: artifacts/dag-diamond-1/2021/07/09/dag-diamond-1-4281134405/main.log
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 11
        memory: 3
      startedAt: "2021-07-09T17:21:41Z"
      templateName: echo
      templateScope: local/dag-diamond-1
      type: Pod
  phase: Succeeded
  progress: 4/4
  resourcesDuration:
    cpu: 17
    memory: 3
  startedAt: "2021-07-09T17:21:41Z"

@alexec
Copy link
Contributor

alexec commented Jul 10, 2021

@Bobgy good enough?

@Bobgy
Copy link
Contributor

Bobgy commented Jul 11, 2021

@alexec sure, that looks perfect!

alexec added a commit that referenced this issue Jul 12, 2021
…6255 (#6299)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Bobgy pushed a commit to Bobgy/argo-workflows that referenced this issue Jul 13, 2021
@sarabala1979 sarabala1979 mentioned this issue Jul 13, 2021
17 tasks
uturunku1 pushed a commit to newrelic-forks/argo-workflows that referenced this issue Jul 22, 2021
…rgoproj#6255 (argoproj#6299)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>
alexec added a commit that referenced this issue Jul 26, 2021
* Update events.md (#6119)

Trying to use the argo workflows events and I noticed that some crucial explanations are missing here. I would like to add:
- A simple WorkflowTemplate bound to the WorkflowEventBinding, to show what is triggered by the curl that send the event
- Some infos about the process that bind the event to the workflow template:
   - template creation
   - event binding apply
   - api call to trigger the workflow template creation
Plus: there is a little mistake in the selector:  metadata["x-argo"] instead of metadata["X-Argo-E2E"] I would like to correct it in order to avoid mistakes during the curl.

Hope this is appreciated! ;)

Denis

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add note on the requirements of resource templates. Fixes #5566 (#6125)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6127)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: alexec <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* add troubleshooting notes section for running-locally docs (#6132)

Co-authored-by: uturunku1 <“21225410+uturunku1@users.noreply.github.com”>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(executor): Check whether any errors within checkResourceState() are transient. Fixes #6118. (#6134)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* build: Remove PNS_PRIVILEGED=true (#6138)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Document the extraction of data from a k8s resource (#6102)

* Document the extraction of data from a k8s resource

* remove reference to lines of a file that can be outdated

Co-authored-by: Yuan Tang <terrytangyuan@gmail.com>

* Remove yaml snippet and only keep the link to the example

Co-authored-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* build image output to docker (#6128)

Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* chore: Update stress rig and docs. Fixes #6136 (#6141)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* chore: Upgrade Alibaba OSS to use more secure ListObjectsV2() (#6142)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: Allow setting workflow input parameters in UI. Fixes #4234 (#5319)

* fix: Allow setting workflow input parameters in UI. Fixes #4234

Signed-off-by: Kenny Trytek <kenneth.g.trytek@gmail.com>

* fix: Allow setting workflow input parameters in UI. Fixes #4234

 - Allow workflow input parameters as well as entrypoint parameters.

Signed-off-by: Kenny Trytek <kenneth.g.trytek@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): Performance improvement for Sprig. Fixes #6135 (#6140)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* update from v0.19.6 to v0.20.4 and indirect dependencies

Signed-off-by: uturunku1 <“21225410+uturunku1@users.noreply.github.com”>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* exec.GetAuthenticator takes two arguments in the k8s-client-go v0.20.4

Signed-off-by: uturunku1 <“21225410+uturunku1@users.noreply.github.com”>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* update makefile to use code-generator@v0.20.4

Signed-off-by: uturunku1 <“21225410+uturunku1@users.noreply.github.com”>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Fix release-notes.md

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Update Graviti's website link (#6148)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(ui): Fix-up local storage namespaces. Fixes #6109 (#6144)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(executor): Capture emissary main-logs. Fixes #6145 (#6146)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(ui): Fix event-flow scrolling. Fixes #6133 (#6147)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* test: Fix logging test (#6159)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(ui): Add checkbox to check all workflows in list. Fixes #6069 (#6158)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Use 'depends' instead of 'dependencies' in examples (#6166)

Signed-off-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(server): Allow redirect_uri to be automatically resolved when using sso (#6167)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): Allow retry on transient errors when validating workflow spec. Fixes #6163 (#6178)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): dehydrate workflow before deleting offloaded node status (#6112)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6160)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: alexec <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Remove RBAC for SSO from Roadmap (Already implemented) (#6174)

It looks like RBAC for SSO is already implemented by #4198 so hopefully it can be removed from the roadmap as it is also documented? https://argoproj.github.io/argo-workflows/argo-server-sso/#sso-rbac

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6187)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: alexec <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Fix changelog order for .0 tags (#6188)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): Wrong validate order when validate DAG task's argument (#6190)

Signed-off-by: BOOK <book78987book@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix rebase conflict

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* run go mod tidy

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* refactor: Remove the need for pod annotations to be mounted as a volume (#6022)

Signed-off-by: Antony Chazapis <chazapis@ics.forth.gr>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: ContainerSets do not have 'depends' (#6199)

Signed-off-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: Fix security issues related to file closing and paths (G307 & G304) (#6200)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add links to Python examples to description annotations (#6202)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs(executor): document k8s executor behaviour with program warnings (#6212)

* docs(executor): document k8s executor behaviour with program warnings

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>

* docs(executor): fix typo

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: Fix certain sibling tasks not connected to parent (#6193)

Signed-off-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(ui): Add copy to clipboard shortcut (#6217)

Signed-off-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6220)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: alexec <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add KarrotPay in USERS.md (#6221)

Signed-off-by: Byungjin Park <posquit0.bj@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* run go mod tidy

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add workflow-count-resourcequota.yaml example (#6225)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: Reduce argoexec image size (#6197)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(conttroller): Always set finishedAt dote. Fixes #6135 (#6139)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat: Add support for deletion delay when using PodGC (#6168)

Signed-off-by: Stefan Sedich <stefan.sedich@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: update bug report template (#6236)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6242)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: alexec <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(executor): emissary - make argoexec executable from non-root containers. Fixes #6238 (#6247)

Signed-off-by: Yuan Gong <gongyuan94@gmail.com>

Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat: Introduce when condition to retryStrategy (#6114)

Signed-off-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* ci: Add Go code security scanner via gosec. Fixes #6203 (#6232)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: fix end of files, new lines and remove multiple lines (#6240)

Signed-off-by: NikeNano <niklas.sven.hansson@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: add json destructuring example (#6250)


Signed-off-by: Michael Crenshaw <michael@crenshaw.dev>

Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(executor): Tolerate docker re-creating containers. Fixes #6244 (#6252)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(executor): emissary - make /var/run/argo files readable from non-root users. Fixes #6238 (#6304)

Signed-off-by: Yuan Gong <gongyuan94@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs(controller): add missing emissary executor (#6291)

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: docs and hacks improvements (#6310)

Signed-off-by: Michael Crenshaw <michael@crenshaw.dev>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(cli): Only list needed fields. Fixes #6000 (#6298)

* fix(cli): Only list needed fields

Signed-off-by: Alex Collins <alex_collins@intuit.com>

* ok

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Fix typo (#6311)

Signed-off-by: Byungjin Park <posquit0.bj@gmail.com>

Co-authored-by: Saravanan Balasubramanian <33908564+sarabala1979@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* require sso redirect url to be an argo url (#6211)

Signed-off-by: Brandon Goode <brandon.goode@cox.com>

Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: code format (#6269)

- Add yaml rendering
- Add bash rendering

Co-authored-by: Simon Behar <simbeh7@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(controller): Store artifact repository in workflow status. Fixes #6255 (#6299)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: document using ingress with TLS enabled (#6324)

Signed-off-by: valorl <11498571+valorl@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: document how to access hyphenated steps in expression templates (#6318)

Signed-off-by: Michael Crenshaw <michael@crenshaw.dev>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(controller): Differentiate CronWorkflow submission vs invalid spec error metrics (#6309)

* feat(controller): Differentiate CronWorkflow submission vs invalid spec error metrics

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>

* Address feedback

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>

Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* chore: deleted wft.yaml

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* ci: only run Snyk once a day on master

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): Not updating StoredWorkflowSpec when WFT changed during workflow running (#6342)

Signed-off-by: Saravanan Balasubramanian <sarabala1979@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(cli): v3.1 Argo Auth Token (#6344)

* fix(cli): v3.1 Argo Auth Token

Signed-off-by: Saravanan Balasubramanian <sarabala1979@gmail.com>

* update

Signed-off-by: Saravanan Balasubramanian <sarabala1979@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add Alibaba Group to USERS.md (#6353)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(crd): temp fix 34s timeout bug for k8s 1.20+ (#6350)

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: updated CHANGELOG.md (#6348)

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: sarabala1979 <sarabala1979@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs(users): Add WooliesX (#6358)

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(cli): Overridding name/generateName when creating CronWorkflows if specified (#6308)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(controller): sortDAGTasks supports sort by field Depends (#6307)

Signed-off-by: BOOK <book78987book@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(fields): handle nexted fields when excluding (#6359)

Signed-off-by: AntoineDao <antoinedao1@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* feat(controller): Allow configurable host name label key when retrying different hosts (#6341)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* pull argo-events changes
update versions in go.mod and go.sum

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* run go mod tidy

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): allow workflow.duration to pass validator (#6376)

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): fix retry on transient errors when validating workflow spec (#6370)

Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>

Co-authored-by: Saravanan Balasubramanian <33908564+sarabala1979@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: examples/ci.yaml indent (#6328)

Signed-off-by: kungho.back <kungho.back@naverlabs.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* chore: import grafana dashboard (#6365)

Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(gcs): throw argo not found error if key not exist (#6393)

Signed-off-by: AntoineDao <antoinedao1@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* Revert "fix: examples/ci.yaml indent (#6328)"

This reverts commit 3f72fe5.

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix: Server crash when opening timeline tab for big workflows (#6369)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

Co-authored-by: Saravanan Balasubramanian <33908564+sarabala1979@users.noreply.github.com>
Co-authored-by: Alex Collins <alexec@users.noreply.github.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add 4intelligence (#6400)

Signed-off-by: Thiago Gil <t.gil@4intelligence.com.br>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Add note on additional required permission for createBucketIfNotPresent for OSS driver (#6378)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): allow initial duration to be 0 instead of current_time-0 (#6389)


Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix(controller): Mark workflows wait for semaphore as pending. Fixes #6351 (#6356)

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* docs: Updating upgrading.md. Closes #6314

Signed-off-by: Alex Collins <alex_collins@intuit.com>
Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* not need to convert to unstructured.unstructured

I was getting this error controller_test.go: pkg/mod/k8s.io/client-go@v0.20.4/tools/cache/reflector.go:167: Failed to watch *unstructured.Unstructured: failed to list *unstructured.Unstructured: item[0]: can't assign or convert unstructured.Unstructured into v1alpha1.Workflow

Based on this comment, it seems like the conversion is not needed: kubernetes-sigs/controller-runtime#524 (comment)

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* run make pre-commit -B

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix potential file inclusion via variable lint error

there is a risk that an unintended file path will be specified. So uuse filepath.Clean() to clean up possible bad paths

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

* fix format issue

Signed-off-by: uturunku1 <luces.huayhuaca@gmail.com>

Co-authored-by: Denis Bellotti <denis.bellotti.android@gmail.com>
Co-authored-by: Yuan Tang <terrytangyuan@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: alexec <alexec@users.noreply.github.com>
Co-authored-by: uturunku1 <“21225410+uturunku1@users.noreply.github.com”>
Co-authored-by: Christophe Blin <christophe.blin@free.fr>
Co-authored-by: meijin <859037421@qq.com>
Co-authored-by: kennytrytek <kenneth.g.trytek@gmail.com>
Co-authored-by: Caden <32856921+CadenOf@users.noreply.github.com>
Co-authored-by: Simon Behar <simbeh7@gmail.com>
Co-authored-by: Stefan Sedich <stefan.sedich@gmail.com>
Co-authored-by: Reijer Copier <copierrj@users.noreply.github.com>
Co-authored-by: Brandon High <highb@users.noreply.github.com>
Co-authored-by: BOOK <book78987book@gmail.com>
Co-authored-by: Antony Chazapis <chazapis@ics.forth.gr>
Co-authored-by: Tianchu Zhao <evantczhao@gmail.com>
Co-authored-by: Byungjin Park (Claud) <posquit0.bj@gmail.com>
Co-authored-by: Yuan (Bob) Gong <4957653+Bobgy@users.noreply.github.com>
Co-authored-by: Niklas Hansson <niklas.sven.hansson@gmail.com>
Co-authored-by: Michael Crenshaw <michael@crenshaw.dev>
Co-authored-by: Saravanan Balasubramanian <33908564+sarabala1979@users.noreply.github.com>
Co-authored-by: brgoode <86316314+brgoode@users.noreply.github.com>
Co-authored-by: Valér Orlovský <11498571+valorl@users.noreply.github.com>
Co-authored-by: Alex Collins <alex_collins@intuit.com>
Co-authored-by: sarabala1979 <sarabala1979@users.noreply.github.com>
Co-authored-by: Antoine Dao <antoinedao1@gmail.com>
Co-authored-by: KUNG HO BACK <bkh751@gmail.com>
Co-authored-by: Zadkiel <zadkiel.aharonian@gmail.com>
Co-authored-by: Alexander Matyushentsev <Alexander_Matyushentsev@intuit.com>
Co-authored-by: Thiago Bittencourt Gil <79285506+thiago4int@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature Feature request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants