我正在寻找自定义工作流名称。我看到argo submit --generate-name
可以覆盖.metadata.generateName
属性,但有人知道这是否可能与触发Workflow
的Sensor
?
我正在使用GitHub事件来触发这些工作流,但是最好将存储库名称从事件中拉出来并将其设置为Workflow上的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
我认为你可以这样做,在生成的名称前加上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,但我不确定如果有多个触发器,它会如何表现。