我有一個資源傳感器來觸發(fā)一個工作流,該工作流報告導(dǎo)致事件的原始工作流 - 一種記錄器。在傳感器的參數(shù)中,我想獲取原始工作流的主體以便從中提取某些值——目前我打算簡單地將整個 JSON 作為輸入字符串傳遞。當工作流很重要并且包含變量文件時,就會出現(xiàn)問題,例如:apiVersion: argoproj.io/v1alpha1kind: Workflowmetadata: generateName: test-es-workflow- labels: class: dummy-inspec: 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}}"]發(fā)生這種情況時觸發(fā)的工作流程:apiVersion: argoproj.io/v1alpha1kind: Sensormetadata: name: demo-sensorspec: 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}}如果工作流不包含任何變量({{}} 中沒有包含任何變量),則觸發(fā)的工作流將按預(yù)期執(zhí)行。我很樂意弄清楚如何獲得以下任何或所有解決方案:警告變量無法解析并替換為 null不要解析事件主體內(nèi)的變量,即將其呈現(xiàn)為純字符串在創(chuàng)建事件時解析變量,以便可以解析正文
1 回答

神不在的星期二
TA貢獻1963條經(jīng)驗 獲得超6個贊
我開發(fā)了類型 2 的答案,即渲染包含在雙花括號中的變量。它并不優(yōu)雅,但它似乎有效:
使用 jq 修補傳感器的依賴項部分,用其他東西替換雙花括號(我選擇“%%”)
dependencies:
- name: test-dep-sensor
eventSourceName: demo-wf-submit
eventName: demo-log
transform:
jq: 'walk( if type=="string" then gsub("{{";"%%") else . end ) | walk( if type=="string" then gsub("}}";"%%") else . end )'
- 1 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消