【问题标题】:pass boolean variable as env, secret or configmap in k8s yaml file在 k8s yaml 文件中将布尔变量作为 env、secret 或 configmap 传递
【发布时间】:2020-06-25 00:16:03
【问题描述】:

我们正在为我们的 Java spring-boot 应用程序创建一个部署 yaml 文件,以便在 AKS 上运行。

我需要一种将布尔变量添加为 env、secret 或 configmap 的方法,我可以传递以下 application.properties

azure.activedirectory.session-stateless=true

像这样在我的 pod 内的环境变量

apiVersion: apps/v1
kind: Deployment
metadata:
  name: service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: svc-deployment
  template:
    spec:
      containers:
      - name: image
        image: acr/image:tag
        env:
        - name: azure.activedirectory.session-stateless
          value: true

我读到 yaml 似乎无法使用引号 - “ture” - 或不解析布尔值。有什么解决方法吗?

【问题讨论】:

  • 所以这不是.properties 文件,而是.yml,是吗?您如何阅读属性(可能以标准 Spring 方式)?但是您如何尝试读取“值”属性(我的意思是,您如何获得它,例如env.value 或其他)?
  • 只编辑原帖
  • 尝试使用 this 或类似方法将您的 yaml 转换为 json 或 xml。 valueenv 数组中 objects 元素的一部分,因此它与 azure.activedirectory.session-stateless=true 不同

标签: java spring-boot kubernetes yaml


【解决方案1】:

application.properties 可以通过 SPRING_APPLICATION_JSON 环境变量进行配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: svc-deployment
  template:
    spec:
      containers:
      - name: image
        image: acr/image:tag
        env:
        - name: SPRING_APPLICATION_JSON
          value: '{"azure": {"activedirectory": {"session-stateless": true}}}'

见:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

【讨论】:

【解决方案2】:

要让环境变量覆盖 application.properties 中的值,您必须使用下划线作为分隔符以大写形式声明环境变量名称。

在您的情况下,环境变量的名称应该是AZURE_ACTIVEDIRECTORY_SESSIONSTATELESS

有关详细信息,请参阅 Spring Boot 文档中的 Relaxed Binding 规则。

【讨论】:

  • 您是如何想到这应该是一个环境变量(即来自操作系统或操作系统用户)?我敢打赌,env 作为环境的简写仅来自 yaml 配置。
  • 谢谢。问题是我需要传递布尔值。
【解决方案3】:

没有解决方法,也没有任何意义。环境变量本身就是字符串,所以值也必须是,否则它只会为你转换它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2011-07-31
    • 2016-11-08
    • 1970-01-01
    • 2020-12-10
    • 2020-10-29
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多