如何使用最新的kubectl-convert来更新磁盘上的文件



我想更新一堆入口。在我的微服务项目中使用新的kubernetes API版本。目前入口仍在使用apiVersion: extensions/v1beta1

我混淆了插件(kubectl convert)和整个新的二进制文件(kubectl-convert)…2023年我应该使用哪个工具?

我想有一个单行命令来更新当前目录内递归的所有ingress.yaml文件。

也许这个新工具有一些bug ?我在使用bash脚本时遇到了这个错误,我认为它可以工作:

find . -name "ingress.yaml" | while read file; do kubectl-convert -f "$file" > "$file"; done
error: no objects passed to convert

我更喜欢使用kubectl convert插件,下面的cmd应该为你做的技巧:

find . -name "ingress.yaml" | while read file; do kubectl convert -f "$file" --output-version networking.k8s.io/v1 > "$file".bak && mv "$file".bak "$file"; done

在一个包含3个入口的集合上进行本地测试。在不同子文件夹内嵌套的Yaml文件。

我假设你从extensions/v1beta1移动到networking.k8s.io/v1

按照惯例,确保在运行这个(或任何类似的)命令之前备份您的文件,以防出现任何意外问题。

希望对你有帮助。