英文:
Quarkus not picking up Kubernetes environment variable
问题
这是您要翻译的内容:
我在GitHub上部署时有两个环境,希望能够在日志中区分它们,因此我有一个名为 ENVIRONMENT 的字段,可以设置为 QA 或 LIVE。
以下是我在 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。
英文:
I have two environments when I am deploying on GitHub, and want to be able to discern between the two in my logs, therefore I have an ENVIRONMENT field which is set to either QA or LIVE.
Here is how I set these fields in 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],
}
}
}
This sets the ENVIRONMENT field in my configMap. I have confirmed this running kubectl commands, and can see this field with in the configMap with the deployment.
I then read this field in my application.properties like so:
quarkus.log.json.additional-field."environment".value=${ENVIRONMENT:unknown}
Because this is set on runtime, it will be set when there is a configMap available to read from, so I am very confused as to why all my logs still say unknown for the environment? I am using quarkus-logging-json for my logging
答案1
得分: 0
Adding the following line to my application.properties resolved the issue.
It seems as though the issue was that the configMap was being deployed correctly in the container, but wasn't setting the values as environment variables in quarkus. This line sets all the values in the configMap as environment variables in Quarkus.
英文:
Adding the following line to my application.properties resolved the issue.
quarkus.kubernetes.env.configmaps=CONFIG_MAP_NAME
It seems as though the issue was that the configMap was being deployed correctly in the container, but wasn't setting the values as environment variables in quarkus. This line sets all the values in the configMap as environment variables in Quarkus.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论