Kubernetes 使用环境变量引用命名空间

Kubernetes 使用环境变量引用命名空间,kubernetes,jenkins-x,Kubernetes,Jenkins X,有人知道使用环境变量在values.yaml中引用命名空间的方法吗 例如,在映射一个秘密时 secret: # RabbitMQ password V_RABBIT_PASSWORD: secretKeyRef: name: jx-staging-rabbit //<--- this needs to work for staging and prod key: rabbitmq-password 及 谢谢我想这是你正在使用je

有人知道使用环境变量在values.yaml中引用命名空间的方法吗

例如,在映射一个秘密时

secret:
    # RabbitMQ password
    V_RABBIT_PASSWORD:
      secretKeyRef:
        name: jx-staging-rabbit //<--- this needs to work for staging and prod
        key: rabbitmq-password


谢谢

我想这是你正在使用jenkins-x部署的应用程序的掌舵图。头盔有一个您可以访问的值。因此,在deployment.yaml中,您可以使用
{{.Release.Namespace}
,尽管
jx staging
也是发布的名称,所以
{{.Release.name}
在这里同样适用。我希望这看起来像:

      valueFrom:
        secretKeyRef:
          name: {{ .Release.Name }}-{{ .Values.rabbitmq.name }}
          key: rabbitmq-password
其中,
{.Values.rabbitmq.name}
等于
rabbitmq
或您在requirements.yaml中称之为rabbitmq的任何内容。(例如,对于postgres,它也使用rabbit,但访问rabbit密码的方式不同。)

如果密码加载正确,但仍然存在密码问题,那么请确保设置了明确的密码值,否则可能会命中密码

{{.Release.Name}
的使用在values.yaml中不起作用,但我不确定您是否需要它,是否可以在deployment.yaml中使用它


(如果您确实需要从values.yaml访问函数,那么您需要在values.yaml和then中为字符串值创建一个条目。)

secretKeyRef必须引用同一Kubernetes命名空间中的一个秘密,如果这是问题的话。谢谢。I获取
[ERROR]templates/:在“vehicle api/templates/deployment.yaml”中呈现错误:模板:vehicle api/templates/deployment.yaml。yaml:34:39:在:处执行“vehicle api/templates/deployment.yaml”:无法计算类型界面{}中的字段名
${NAMESPACE}-{{ $value.secretKeyRef.name | quote }}
{{ template "namespace" . }}-{{ $value.secretKeyRef.name | quote }}
      valueFrom:
        secretKeyRef:
          name: {{ .Release.Name }}-{{ .Values.rabbitmq.name }}
          key: rabbitmq-password