gpt4 book ai didi

kubernetes-helm - 为什么 "{{.Release.namespace}}"呈现为空?

转载 作者:行者123 更新时间:2023-12-04 05:36:15 25 4
gpt4 key购买 nike

我了解 {{.Release.namespace}}将呈现由helm 安装的应用程序的命名空间.在这种情况下,helm template命令会将其呈现为空字符串(因为它还不知道发布 namespace )。

然而,让我惊讶的是helm upgrade --install命令(我没有尝试过其他命令,例如 helm install )在某些情况下也会使其为空。

这是我的 Helm chart 模板的示例:

apiVersion: v1
kind: Service
metadata:
name: {{.Values.app.name}}-{{.Values.app.track}}-internal
namespace: {{.Release.namespace}}
annotations:
testAnnotate: "{{.Release.namespace}}"
spec:
ports:
- protocol: TCP
port: 80
targetPort: 8080
selector:
app: {{.Values.app.name}}
environment: {{.Values.app.env}}
track: {{.Values.app.track}}
type: ClusterIP

调用后 helm upgrade --install在该图表模板上(并成功安装),然后我尝试查看我的资源的输出
> kubectl get -o yaml svc java-maven-app-stable-internal -n data-devops
apiVersion: v1
kind: Service
metadata:
annotations:
testAnnotate: ""
creationTimestamp: 2018-08-09T06:56:41Z
name: java-maven-app-stable-internal
namespace: data-devops
resourceVersion: "62906341"
selfLink: /api/v1/namespaces/data-devops/services/java-maven-app-stable-internal
uid: 5e888e6a-9ba1-11e8-912b-42010a9400fa
spec:
clusterIP: 10.32.76.208
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: java-maven-app
environment: stg
track: stable
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}

如您所见,我输入了 {{.Release.namespace}}在2个地方:
  • metadata.namespace字段
  • metadata.annotations.testAnnotate field 。

  • 但它只会在 metadata.namespace 上呈现正确的命名空间 field 。知道为什么吗?

    最佳答案

    生成值.Release.Namespace是区分大小写的。 “命名空间”中的字母 N 应大写。

    关于kubernetes-helm - 为什么 "{{.Release.namespace}}"呈现为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51760772/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com