【问题标题】:Override Argo Workflows generateName from Sensor从传感器覆盖 Argo 工作流 generateName
【发布时间】:2021-12-09 06:59:48
【问题描述】:

我正在研究自定义工作流程名称。我看到argo submit --generate-name 可以覆盖.metadata.generateName 属性,但是有谁知道这是否可以通过触发WorkflowSensor 来实现?

我正在使用 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

【问题讨论】:

    标签: github argo-workflows argo-events argo


    【解决方案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,但我不确定如果出现多个触发器会如何。

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 2022-08-16
      • 2023-01-30
      • 2022-07-07
      • 2022-06-10
      • 2021-08-25
      • 1970-01-01
      • 2020-08-29
      • 2022-06-10
      相关资源
      最近更新 更多