我有一个资源传感器来触发一个工作流,该工作流报告导致事件的原始工作流 - 一种记录器。在传感器的参数中,我想获取原始工作流的主体以便从中提取某些值——目前我打算简单地将整个 JSON 作为输入字符串传递。
当工作流很重要并且包含变量文件时,就会出现问题,例如:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-es-workflow-
labels:
class: dummy-in
spec:
entrypoint: whalesay
arguments:
parameters:
- name: message
value: hello world
templates:
- name: whalesay
inputs:
parameters:
- name: message
container:
image: docker/whalesay:latest
command: [cowsay]
args: ["{{inputs.parameters.message}}"]
发生这种情况时触发的工作流程:
apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
name: demo-sensor
spec:
template:
serviceAccountName: operate-workflow-sa
dependencies:
- name: test-dep-sensor
eventSourceName: demo-wf-submit
eventName: demo-log
triggers:
- template:
name: argo-workflow
k8s:
operation: create
source:
resource:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: demo-log-
spec:
entrypoint: demolog
arguments:
parameters:
- name: body
value: hello world
templates:
- name: demolog
inputs:
parameters:
- name: body
container:
image: demolog:latest
imagePullPolicy: "Always"
command: [/app/demoapp.py]
args: ["-j", "{{inputs.parameters.body}}"]
消息失败Message: invalid spec: templates.demolog: failed to resolve
{{inputs.parameters.message}}
如果工作流不包含任何变量({{}} 中没有包含任何变量),则触发的工作流将按预期执行。
我很乐意弄清楚如何获得以下任何或所有解决方案:
警告变量无法解析并替换为 null
不要解析事件主体内的变量,即将其呈现为纯字符串
在创建事件时解析变量,以便可以解析正文
神不在的星期二
相关分类