Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes helm 自动将舵图文件升级到版本3_Kubernetes Helm - Fatal编程技术网

Kubernetes helm 自动将舵图文件升级到版本3

Kubernetes helm 自动将舵图文件升级到版本3,kubernetes-helm,Kubernetes Helm,我有大量的helm文件,其结构符合Helm2,即单独的要求。yaml文件和图表中的无类型:应用程序。yaml 在helm-2to3插件中是否有一个选项可以自动将需求.yaml放在图表下。yaml或者我必须自己编写一个脚本来实现这一点 我的图表被签入GH btw(不是使用头盔回购,而是通过GitOps进行操作) 编辑:在下面的答案中确认helm-2to3不提供该功能后,我最终使用了下面的脚本草稿(警告:不要在生产中使用它:);然后,您可以通过一个简单的查找/xargsoneliner来删除所有需求

我有大量的helm文件,其结构符合
Helm2
,即单独的
要求。yaml
文件和
图表中的无
类型:应用程序。yaml

helm-2to3
插件中是否有一个选项可以自动将
需求.yaml
放在
图表下。yaml
或者我必须自己编写一个脚本来实现这一点

我的图表被签入GH btw(不是使用头盔回购,而是通过GitOps进行操作)

编辑:在下面的答案中确认
helm-2to3
不提供该功能后,我最终使用了下面的脚本草稿(警告:不要在生产中使用它:);然后,您可以通过一个简单的
查找
/
xargs
oneliner来删除所有
需求.yaml
(或者给它们一个
.bak
的扩展名,以便保留一段时间)

当然,图表应该从保存
helm
文件的项目根目录运行

导入操作系统
导入时间
对于os.walk(os.path.abspath(“.”)中的根目录、目录和文件:
对于文件中的文件:
如果文件==“requirements.yaml”:
path=os.path.dirname(os.path.join(根,文件))
打印(路径)
os.chdir(路径)
files=[f表示os.listdir('.')中的f,如果os.path.isfile(f)]
#打印(文件)
如果文件中的“requirements.yaml”和文件中的“Chart.yaml”:
需求\u path=os.path.join(根,文件)
打印(“在..中执行作业:”,要求\u路径)
chart\u path=path+“/chart.yaml”
打印(图表路径)
按要求打开(要求路径):
r=req.read()
打开(图表路径“a”)作为chr:
chr.write(r)
时间。睡眠(2)

有一个非常好的插件可以满足您的需求:

在Flux CD页面上还有关于迁移GitOps设置的信息(假设您对GitOps使用Flux和Helm操作符)

更多信息请参见:

我有很多helm模板文件,其结构与Helm2一致,即一个单独的requirements.yaml文件,没有类型:application in Chart.yaml

helm图表中的模板文件在helm 3下的工作方式应相同。这是Chart.yaml文件,在每个需要编辑的图表中。不幸的是,helm-2to3插件无法为您实现这一点。它主要是为了修复Kubernetes集群,您以前可能已经安装了helm charts

Helm3能够安装较旧的头盔图表,因此我建议每次更新一个头盔图表


总之,我们也在使用GitOps。高兴地支持两个头盔2+头盔3图表,只使用头盔生成YAML。这意味着集群上没有需要更新的舵配置。(迈尔斯的回答中有一个链接,如果你正在使用的话)

谢谢你的回复迈尔斯。我知道
helm-2to3
我只是没有找到(或没有正确解释)能够完成我想要的任务的实际命令(即迁移实际的模板文件;您是否碰巧发现了它?感谢您确认
helm-2to3
没有做到这一点)(是的,我具体指的是
Chart.yaml
的对齐)。我已经相应地更新了我的问题。我在头盔2和头盔3环境中使用相同的图表。只要我确保使用
helm2依赖项更新
来重建
需求。锁定
文件,相同的图表99.9%适用于两个版本的头盔。因此没有(压力)需要在
图表中设置
依赖项
,yaml
也不需要在同一文件中将
apiVersion
v1
更改为
v2
,对吗?可以在以后的任何时候进行设置?@pkaramol请参阅David的评论