首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉Helm不要运行作业

如何告诉Helm不要运行作业
EN

Stack Overflow用户
提问于 2022-02-23 16:13:42
回答 1查看 590关注 0票数 3

我正在尝试使用helm制作一个Kubernetes部署脚本。我创建了以下两个作业(跳过容器模板,因为我想这并不重要)

模板/作业/迁移

代码语言:javascript
复制
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:
  ...

模板/作业/苗木

代码语言:javascript
复制
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

我怎样才能用舵机做同样的事呢?

EN

回答 1

Stack Overflow用户

发布于 2022-02-24 14:59:32

回复你最后的评论,并感谢@HubertNNN的想法:

我可以多次运行暂停的工作吗?从文档中看,这似乎是一个无法像正常作业那样重新运行的一次性作业。

这是一项正常的工作,你只需用.spec.suspend: true编辑yaml文件,它就是startTime

代码语言:javascript
复制
apiVersion: batch/v1
kind: Job
metadata:
  name: myjob
spec:
  suspend: true
  parallelism: 1
  completions: 5
  template:
    spec:
      ...

如果所有的作业都是在挂起状态下创建并放在一个挂起队列中的话,我可以通过以正确的顺序恢复作业来实现基于优先级的作业调度。

更多信息请参阅这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71240467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档