java Quarkus未拾取Kubernetes环境变量

p3rjfoxz  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(94)

当我在GitHub上部署时,我有两个环境,并且希望能够在我的日志中区分这两个环境,因此我有一个ENVIRONMENT字段,它被设置为QALIVE
下面是我如何在main.tf中设置这些字段:

locals {
  environment = {
    qa = "QA"
    live = "LIVE"
  }
}

resource "kubernetes_manifest" "config" {
  manifest = {
    "apiVersion" = "v1"
    "kind"       = "ConfigMap"
    "metadata" = {
      "name"      = "config"
      "namespace" = "test"
    }
    "data" = {
      "ENVIRONMENT" = local.environment[terraform.workspace],
    }
  }
}

这将设置configMap中的ENVIRONMENT字段。我已经运行kubectl命令确认了这一点,并且可以在部署的configMap中看到此字段。
然后我在application.properties中读取这个字段,如下所示:

quarkus.log.json.additional-field."environment".value=${ENVIRONMENT:unknown}

因为这是在运行时设置的,所以当有一个configMap可供读取时,它将被设置,所以我很困惑,为什么我所有的日志仍然显示环境的unknown?我正在使用quarkus-logging-json进行日志记录

soat7uwm

soat7uwm1#

在我的application.properties中添加以下行解决了这个问题。

quarkus.kubernetes.env.configmaps=CONFIG_MAP_NAME

问题似乎是configMap在容器中正确部署,但没有将值设置为quarkus中的环境变量。这一行将configMap中的所有值设置为Quarkus中的环境变量。

相关问题