1

我正在研究自定义工作流程名称。我看到它argo submit --generate-name可以覆盖该.metadata.generateName属性,但有谁知道这是否可以Sensor触发 a Workflow

我正在使用 GitHub 事件来触发这些工作流,但最好将存储库名称从事件中提取出来并将其设置为generateName工作流上的。

这是我希望工作的一个例子,但据我所知似乎没有。也许我的语法错误?有谁知道这样的事情是否可能?

(注意,我已经删除了这个传感器的很大一部分,以便只显示重要部分。基本上,我想解析存储库名称的 GitHub 事件有效负载。在工作流参数上设置它。然后使用这些来覆盖工作流的generateName属性。)

apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
  name: github-sensor
spec:
  dependencies:
    - name: github-webhook-sensor
      eventSourceName: github-events
      eventName: github

  triggers:
    - template:
        name: github
        k8s:
          group: argoproj.io
          version: v1alpha1
          resource: workflows
          operation: create
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: {{ workflow.parameters.name }}
              spec:
                arguments:
                  parameters:
                  - name: "git-repository-name"


          parameters:
          # Parameter: git-repository-name
          - src:
              dependencyName: github-webhook-sensor
              dataKey: body.repository.name
            dest: spec.arguments.parameters.0.value
4

1 回答 1

1

我认为您可以这样做以在生成的名称前面加上 repo 名称(和连字符):

          ...
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: "-"
              spec:
                arguments:
                  parameters:
                  - name: "git-repository-name"


          parameters:
          - src:
              dependencyName: github-webhook-sensor
              dataKey: body.repository.name
            dest: metadata.generateName
            operation: prepend
          # Parameter: git-repository-name
          - src:
              dependencyName: github-webhook-sensor
              dataKey: body.repository.name
            dest: spec.arguments.parameters.0.value

您也可以使用name代替generateName,但我不确定如果出现多个触发器会如何表现。

于 2022-01-26T16:53:38.300 回答