假设我有两个版本的图表Foo-v1和v2。我已经安装了v1(作为修订版1),然后又升级到了v2(修订版2)。
现在,我想回滚到第一修订版(helm rollback Foo 1
)。是否有任何方法可以在回滚after v1的某个点上运行作业在v2中定义,还原了v1资源。
它必须在v1资源上执行某些操作,因为在v2中进行了向后不兼容的更改。
我假设v2中定义的预回滚挂钩可以完成这项工作。不幸的是,图表生命周期文档对我来说有点令人困惑。
pre-rollback
在创建任何资源之前执行。您的期望状态是让该作业在已创建的资源上运行,因此您必须按照文档中所述使用post-rollback
钩子:
修改所有资源后,在回滚后执行回滚请求
以下文档和示例应消除您的困惑-
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