簡體   English   中英

Argo Events:將變量從工作流通過事件有效負載傳遞到觸發的工作流

[英]Argo Events: passing variables from workflow through event payload to triggered workflow

我希望設置 argo-events 以在提交“常規”工作流程時觸發數據記錄工作流程。 按照資源事件源文檔,我可以做到這一點,但我找不到如何像使用webhook 參數化那樣編碼和提取變量。

所以我想提交以下工作流程:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: test-logger-workflow-
  labels:
    class: dummy-in
    submitaction: log-this
    wfuser: m-wf
    wfteam: a-wf
spec:
  entrypoint: whalesay
  templates:
  - name: whalesay
    container:
      image: docker/whalesay:latest
      command: [cowsay]
      args: ["hello world - manual submit - was log created?"]

然后在觸發器中訪問這些標簽:

apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
  name: resource-logger
spec:
  template:
    serviceAccountName: operate-workflow-sa
  dependencies:
    - name: test-dep-sensor
      eventSourceName: resource-wf-submit
      eventName: log-this
  triggers:
    - template:
        name: argo-workflow
        k8s:
          operation: create
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: resource-workflow-
                labels:
                  class: dummy-out
              spec:
                entrypoint: mylogger
                arguments:
                  parameters:
                    - name: user
                      value: default-name
                    - name: group
                      value: default-group
                    - name: description
                      value: triggered by argo submission
                templates:
                  - name: logger
                    inputs:
                      parameters:
                        - name: user
                        - name: group
                        - name: description
                    container:
                      image: logger:latest
                      imagePullPolicy: Always
                      command: [/app/logger.py]
                      args: ["-w", "argo-events", "-u", "{{inputs.parameters.user}}", "-t", "{{inputs.parameters.group}}", "-d", "{{inputs.parameters.description}}"]
          parameters:
            - src:
                dependencyName: test-dep-user
                ?? 
              dest: spec.arguments.parameters.0.value
            - src:
                dependencyName: test-dep-group
                ??
              dest: spec.arguments.parameters.1.value
            - src:
                dependencyName: test-dep-description
                ??
              dest: spec.arguments.parameters.2.value

我需要用什么代替“??” 從工作流中獲取wfuserwfteam值? 是否有訪問任何工作流結構的通用方法,例如使用image值( docker/whalesay:latest )填充描述?

我遇到的錯誤是spec.dependencies.nametest-dep-sensor )和spec.triggers.template.k8s.parameters.src.dependencyName需要匹配,否則不包含/處理后者:

apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
  name: resource-logger
spec:
  template:
    serviceAccountName: operate-workflow-sa
  dependencies:
    - name: test-dep-sensor
      eventSourceName: resource-wf-submit
      eventName: log-this
  triggers:
    - template:
        name: argo-workflow
        k8s:
          operation: create
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: resource-workflow-
                labels:
                  class: dummy-out
              spec:
                entrypoint: mylogger
                arguments:
                  parameters:
                    - name: description
                      value: triggered by argo submission
                    - name: user
                      value: default-name
                    - name: group
                      value: default-group
                templates:
                  - name: logger
                    inputs:
                      parameters:
                        - name: description
                        - name: user
                        - name: group
                    container:
                      image: logger:latest
                      imagePullPolicy: Always
                      command: [/app/logger.py]
                      args: ["-w", "argo-events", "-u", "{{inputs.parameters.user}}", "-t", "{{inputs.parameters.group}}", "-d", "{{inputs.parameters.description}}"]
          parameters:
            - src:
                dependencyName: test-dep-sensor
                dataKey: body
              dest: spec.arguments.parameters.0.value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM