我想在helm模板文件中以编程方式检索给定插件的apivversion,例如certmanager.基本上是输出的第三列:
[xx@xx-bnng5g3 test]$ kubectl api-resources -o wide | grep certificates
certificates cert,certs cert-manager.io/v1 true Certificate
字符串
我在考虑使用(lookup ...)
实现结果,但我发现比预期的要困难。有没有更简单的方法?
1条答案
按热度按时间w7t8yxp51#
该列显示将在Kubernetes资源中使用的
apiVersion:
值。在Kubernetes API术语中,它是 group 和 version 的组合。在Helm中,有一个built-in
.Capabilities
object,其中包含有关可用API版本的详细信息。您可以测试特定版本:字符串
查找特定API组的当前版本更具挑战性。
.Capabilities.APIVersions
看起来是一个简单的字符串列表,你可以使用任何标准的list或list-of-string functions来搜索它。这并不包括任何类似Unixgrep(1)的东西,它可以找到以特定前缀开始的字符串。(This技术对于从Kubernetes API的测试版升级到发布版本非常有用。例如,当
apps/v1beta1
Deployment对象从Kubernetes中删除时,一些较旧的集群还不支持apps/v1
Deployment。这样就可以说,如果有v1
版本,就使用它,如果没有,就使用旧的v1beta1
版本。)