当前版本的头盔回滚钩

时间:2020-06-05 11:26:50

标签: kubernetes kubernetes-helm

比方说,我有两个版本的图表 Foo -v1和v2。我已经安装了v1(作为修订版1),然后又升级到了v2(修订版2)。

现在,我想回滚到第一个修订版(helm rollback Foo 1)。在还原v1资源后的某个回滚点上,是否有任何方法可以运行v2中定义的作业

它必须对v1资源执行某些操作,因为在v2中进行了向后不兼容的更改。

我认为v2中定义的预回滚挂钩可以完成这项工作。不幸的是,图表生命周期文档对我来说有点令人困惑。


我尝试使用

  annotations:
    "helm.sh/hook": post-rollback

如答案中所建议。不幸的是,当我从v2回滚到v1时,将执行v1的pre / post回滚作业版本。我需要执行v2图表中定义的作业。

3 个答案:

答案 0 :(得分:0)

在创建任何资源之前,先执行

pre-rollback。您的期望状态是让该作业在已经创建的资源上运行,因此您必须使用post-rollback挂钩,如文档所述:

回滚后修改所有资源后,对回滚请求执行

答案 1 :(得分:0)

以下文档和示例应消除您的困惑-

https://helm.sh/docs/topics/charts_hooks/#the-available-hooks

https://helm.sh/docs/topics/charts_hooks/#writing-a-hook

tldr

将以下内容添加到要执行的作业中。

annotations:
  "helm.sh/hook": post-rollback

答案 2 :(得分:0)

不,这是不可能的,Helm始终使用目标版本中的钩子,在本例中为v1。