【问题标题】:How to use Lookup function in Helm Chart如何在 Helm Chart 中使用 Lookup 功能
【发布时间】:2020-12-06 03:10:18
【问题描述】:

在部署 Kubernetes 应用程序时,我想检查是否存在特定的 PodSecurityPolicy,如果存在则跳过再次安装它。 我遇到了helm lookup function,它允许我们检查现有的 K8 资源。 虽然我了解如何使用此函数获取所有同类资源,但如何使用此函数检查名为“myPodSecurityPolicy”的 PodSecurityPolicy 是否存在。

我尝试过这样的事情:

{{- if ne (lookup "v1" "PodSecurityPolicy" "" "") "myPodSecurityPolicy"}}
<do my stuff>

{{- end }}

但是好像不能这样比较,看到一个错误-

error calling ne: invalid type for comparison

任何输入?提前致谢。

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    请检查您的 API 版本和 PSP 名称。查找返回 mapnil 而不是字符串,这就是您收到该错误的原因。以下对我有用。对于否定表达,只需在if 之后添加not

    {{- if (lookup "policy/v1beta1" "PodSecurityPolicy" "" "example") }}
    <found: do your stuff>
    
    {{- end }}
    

    HTH

    【讨论】:

    • 知道如果第三个参数是正确的命名空间,为什么它不会工作吗?
    • 如何从模板中查找资源,如{{ include "something" . }}-foo?
    • @rabejens {{- if not (lookup "v1" "Namespace" "" (printf "%s-%s" (include "something" $) "foo")) }}
    猜你喜欢
    • 2022-10-18
    • 1970-01-01
    • 2018-03-10
    • 2021-02-04
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    相关资源
    最近更新 更多