头盔查找总是空的
Helm lookup always empty
在部署 Kubernetes 应用程序时,我想检查资源是否已经存在。如果是这样,则不应呈现。为了归档此行为,使用了 helm 的 lookup function。部署时似乎总是空的(没有干-运行)。知道我做错了什么吗?
---
{{- if not (lookup "v1" "ServiceAccount" "my-namespace" "my-sa") }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Chart.Name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
labels:
app: {{ $.Chart.Name }}
environment: {{ .Values.environment }}
annotations:
"helm.sh/resource-policy": keep
iam.gke.io/gcp-service-account: "{{ .Chart.Name }}-{{ .Values.environment }}@{{ .Values.gcpProjectId }}.iam.gserviceaccount.com"
{{- end }}
运行ning 相应的 kubectl 命令 return 预期的服务帐户
kubectl get ServiceAccount my-sa -n my-namespace
列出预期的服务帐户
头盔版本:3.5.4
我认为你不能使用这个 if-statement 来验证你想要的。
查找功能 returns 通过查找找到的对象列表。因此,如果您想验证没有具有您指定属性的服务帐户,您应该检查返回的列表是否为空。
测试类似
---
{{ if eq (len (lookup "v1" "ServiceAccount" "my-namespace" "my-sa")) 0 }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Chart.Name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
labels:
app: {{ $.Chart.Name }}
environment: {{ .Values.environment }}
annotations:
"helm.sh/resource-policy": keep
iam.gke.io/gcp-service-account: "{{ .Chart.Name }}-{{ .Values.environment }}@{{ .Values.gcpProjectId }}.iam.gserviceaccount.com"
{{- end }}
参见:https://helm.sh/docs/chart_template_guide/functions_and_pipelines/#using-the-lookup-function
在部署 Kubernetes 应用程序时,我想检查资源是否已经存在。如果是这样,则不应呈现。为了归档此行为,使用了 helm 的 lookup function。部署时似乎总是空的(没有干-运行)。知道我做错了什么吗?
---
{{- if not (lookup "v1" "ServiceAccount" "my-namespace" "my-sa") }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Chart.Name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
labels:
app: {{ $.Chart.Name }}
environment: {{ .Values.environment }}
annotations:
"helm.sh/resource-policy": keep
iam.gke.io/gcp-service-account: "{{ .Chart.Name }}-{{ .Values.environment }}@{{ .Values.gcpProjectId }}.iam.gserviceaccount.com"
{{- end }}
运行ning 相应的 kubectl 命令 return 预期的服务帐户
kubectl get ServiceAccount my-sa -n my-namespace
列出预期的服务帐户
头盔版本:3.5.4
我认为你不能使用这个 if-statement 来验证你想要的。
查找功能 returns 通过查找找到的对象列表。因此,如果您想验证没有具有您指定属性的服务帐户,您应该检查返回的列表是否为空。
测试类似
---
{{ if eq (len (lookup "v1" "ServiceAccount" "my-namespace" "my-sa")) 0 }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Chart.Name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
labels:
app: {{ $.Chart.Name }}
environment: {{ .Values.environment }}
annotations:
"helm.sh/resource-policy": keep
iam.gke.io/gcp-service-account: "{{ .Chart.Name }}-{{ .Values.environment }}@{{ .Values.gcpProjectId }}.iam.gserviceaccount.com"
{{- end }}
参见:https://helm.sh/docs/chart_template_guide/functions_and_pipelines/#using-the-lookup-function