我只有一张头盔图,并且在模板下定义了两个作业资源。
.
├── Chart.yaml
├── templates
│ ├── job.yaml
│ └── post-copy-job.yaml
└── values.yaml
我的第一份工作(job.yaml)实际上是一个模板,但是它推出了多个工作(使用范围)。
我希望我的第二个作业模板(post-copy-job.yaml)保持执行,直到第一个模板下的所有作业都完成为止。 我试图在第二个作业模板中使用安装后挂钩。
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": before-hook-creation
尽管如此,它仍在作业模板一下的所有作业完成之前执行并完成。 我的问题是,如何延迟第二个作业模板的执行,直到一个作业模板下的所有资源都完成。
答案 0 :(得分:0)
尽管David评论可能是最好的方法,但我认为可以采用的最轻量级的解决方案是部署另一个作业,该作业将陷入循环并不断监视第一个作业的状态,并在所有作业完成后对其进行监视它将开始处理。这样会消耗一些额外的资源,但是会以最小的努力使您摆脱泡菜。
您可以通过使用k8s API来监视第一个作业,并且如果您也想在此切角,则可以为此使用blob存储-为每个作业创建一个blob,并在作业完成时将其标记为完成