spec.workflowTemplateRef
from WorkflowSpec
別定義された Workflow Template (argo) を参照だけして実行する
Workflow専用
基本形
code:yaml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: hello-
spec:
entrypoint: main # 任意。省略するとテンプレ側のentrypointを使う
arguments: # 任意。テンプレのデフォルトを上書き
parameters:
- name: message
value: "hi"
workflowTemplateRef:
name: my-template # 参照する WorkflowTemplate の名前
clusterScope: false # true にすると ClusterWorkflowTemplate を参照
別の場所で定義されているmy-templateを、実引数"hi"で呼び出そうとしている感じ
ref Workflow Templateのmanifestの例を読んで構造を捉える#6852d58a000000000087b217
「参照」と「コピー」の違い
table:_
観点 workflowTemplateRef (参照) spec.templates に展開 / argo submit --from
Workflow CR の中身 参照のみ。テンプレ本体は持たない サブミット時点のテンプレ内容が焼き付けられる
テンプレを後から更新 再実行時に新しい定義で動く 既存Workflowは古いまま
spec.entrypoint/arguments/ttlStrategy 等 Workflow側で上書き可 同上
templates 配列 Workflow側に書けない(参照と排他) 自由に追加できる
つまり「テンプレの単一の真実をクラスタ側に置く」運用に向く
CronWorkflow から参照すれば、テンプレを直すだけで以後の定期実行に反映される。
注意点
workflowTemplateRef を使うと、同じ Workflow spec に templates を直接書けない(排他)
サブステップを増やしたいならテンプレ側を編集する。
参照先が消えると実行できない。Argoは参照解決時にエラーになる。
entrypoint / arguments / serviceAccountName / ttlStrategy / podGC などWorkflow直下のフィールドは上書き可能。テンプレ本体のテンプレート定義そのものは上書きできない(差し込み不可)。