如何解决 kubernetes 中包含 yaml 属性的无效字符

问题描述 投票:0回答:1

我需要从 value.yaml 为 kubernetes 容器动态添加 cors allowedOrigins 。这是我的值.yaml

 test:
  cors:
    allowedOrigins: 'https://www.test.com'

我试图覆盖下面的属性。

spring:
  application:
    name: something
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: 'https://www.host.com'

我尝试像下面这样解决它。

- name: SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS_[/**]_ALLOWEDORIGINS
  value: {{ .Values.test.cors.allowedOrigins | quote }}

顺便说一句,它说我不能使用[/**]这个,因为它是无效的。我收到此错误

SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS_[/**]ALLOWEDORIGINS”:有效的环境变量名称必须由字母、数字、“”、“-”或“.”组成,并且不能以数字开头(例如“my.env-name”) '、或 'MY_ENV.NAME'、或 'MyEnvName1'、用于验证的正则表达式是 '[-._a-zA-Z][-._a-zA-Z0-9]*')

我怎样才能让它发挥作用?

spring kubernetes kubernetes-helm spring-cloud-gateway
1个回答
0
投票

我找到了更好的方法来解决这个问题。 这是我的 Value.yaml

test:
  cors:
    allowedOrigins: 'https://www.test.com'

这是我需要重写的微服务。

spring:
  application:
    name: something
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: ${GATEWAY_CORS_ALLOWED_ORIGINS:*}

这是部署yaml中的值映射。

- name: GATEWAY_CORS_ALLOWED_ORIGINS
  value: {{ default "*" (.Values.test.cors.allowedOrigins) | quote }} 

为此,我收到的有关此问题的评论对我很有帮助。所以感谢您的评论。

© www.soinside.com 2019 - 2024. All rights reserved.