同步状态文件中的所有资源(repos、releases和图表deps)仅在发生更改时应用状态文件中的所有资源。
同步
helmfile同步子命令同步群集状态,如helmfile中所述.在封面下,Helmfile对清单中声明的每个版本执行helm升级--安装,方法是可选地解密要作为舵机图表值使用的秘密。它还更新指定的图表存储库,并更新任何引用的本地图表的依赖关系。对于Helm 2.9+,您可以使用用户名和密码对远程存储库进行身份验证。
应用
helmfile应用子命令从执行diff开始。如果diff发现有任何更改,则执行同步。添加--交互式指令Helmfile在同步之前请求确认。应用程序的一个预期用例是安排它定期运行,这样您就可以自动修复运行在Kubernetes集群上的应用程序的期望状态和当前状态之间的偏差。
我通过Helmfile回购 Readme来找出helmfile sync和helmfile apply之间的区别。看起来,与apply命令不同的是,同步命令不会执行diff和helm upgrade的所有版本。但是,从单词sync中,您可以期望命令应用那些已经更改的版本。还提到了helmfile apply在定期同步发布中的潜在应用。为什么不为此目的使用helmfile sync呢?总的来说,差别并没有变得非常清楚,我想可能还有更多。所以我在问。
发布于 2020-02-13 09:42:41
考虑一下用例,在这种情况下,每5分钟就会触发一次Jenkins作业,在该作业中,您希望升级您的舵机图表,但前提是有更改。
如果您使用helmfile sync,它每五分钟调用一次helm upgrade --install,最后将每五分钟递增一次图表修订。
$ helm upgrade --install httpd bitnami/apache > /dev/null
$ helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
httpd 1 Thu Feb 13 11:27:14 2020 DEPLOYED apache-7.3.5 2.4.41 default
$ helm upgrade --install httpd bitnami/apache > /dev/null
$ helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
httpd 2 Thu Feb 13 11:28:39 2020 DEPLOYED apache-7.3.5 2.4.41 default因此,每个helmfile sync都将产生新的修订。现在,如果您要运行helmfile apply,它将首先检查差异,然后(如果找到)将调用helmfile sync,然后调用helm upgrade --install,这将不会发生。
发布于 2021-10-11 17:07:14
其他答案中的所有内容都是正确的。然而,对于sync和apply,还有一件重要的事情需要理解。
sync将在所有版本上调用helm upgrade。因此,将为每个版本创建一个新的舵机秘密,并且版本的修订都将增加一个。Helm 3使用三种策略合并算法来计算补丁,这意味着它将还原手动更改在处理的活动集群中的资源;apply将首先使用helm插件来确定哪些版本已更改,并且只对已更改的版本运行helm upgrade。然而, Helm 只将以前的Helm状态与新的Helm状态进行比较,没有将活动集群的状态考虑到。这意味着如果您手动修改某个内容,helmfile apply (或者更准确地说是helm插件)可能无法检测到它,并保持原样。因此,如果您总是通过helm修改活动集群,那么helmfile apply就是最好的选择。但是,如果您可以进行手动更改,并希望确保活动状态与Helm/helmfile中定义的内容相一致,那么helmfile sync是必要的。
如果您想了解更多细节,请查看我的博客文章helmfile:同步和应用的区别(Helm 3)
发布于 2022-02-15 13:09:51
简单地说,,,这两种语言都是这样工作的:
helmfile sync调用helm upgrade --installhelmfile apply调用helm upgrade --install当且仅当helm diff返回一些更改。因此,通常情况下,helmfile apply会更快,我建议大部分时间使用它。
但是,请考虑一下,如果有人从图表中手动删除了任何deployments或configmaps,helm diff将不会看到任何更改,因此helmfile apply将无法工作,这些资源仍将被删除,而helmfile sync将重新创建原始图表配置。
https://stackoverflow.com/questions/59703760
复制相似问题