比方说,我有两个版本的图表 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图表中定义的作业。
答案 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。