首页 > 解决方案 > 在 k8s yaml 文件中将布尔变量作为 env、secret 或 configmap 传递

问题描述

我们正在为我们的 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” - 或不解析布尔值。有什么解决方法吗?

标签: javaspring-bootkubernetesyaml

解决方案


application.properties可以通过SPRING_APPLICATION_JSONenv 变量进行配置

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


推荐阅读