我正在尝试使用helm制作一个Kubernetes部署脚本。我创建了以下两个作业(跳过容器模板,因为我想这并不重要)
模板/作业/迁移
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-migrate
namespace: {{ .Release.Namespace }}
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "10"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
...模板/作业/苗木
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-seed
namespace: {{ .Release.Namespace }}
spec:
...第一项工作是更新数据库结构。
第二个任务将重置数据库内容并用示例数据填充它。
由于我没有向种子作业添加post-install钩子,所以我希望该作业不会自动运行,但只在手动要求它运行时。
但它不仅自动运行,还试图在迁移之前运行。
如何定义必须手动触发才能运行的作业?
在vanilla kubernetes中,只有当我显式地使用
kubectl apply -f job/seed-database.yaml
我怎样才能用舵机做同样的事呢?
发布于 2022-02-24 14:59:32
回复你最后的评论,并感谢@HubertNNN的想法:
我可以多次运行暂停的工作吗?从文档中看,这似乎是一个无法像正常作业那样重新运行的一次性作业。
这是一项正常的工作,你只需用.spec.suspend: true编辑yaml文件,它就是startTime
apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
suspend: true
parallelism: 1
completions: 5
template:
spec:
...如果所有的作业都是在挂起状态下创建并放在一个挂起队列中的话,我可以通过以正确的顺序恢复作业来实现基于优先级的作业调度。
更多信息请参阅这里
https://stackoverflow.com/questions/71240467
复制相似问题