Quarkus Kubernetes配置扩展和覆盖应用程序.yml的异常行为

mzsu5hc0  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(156)

我们刚刚开始看到一个奇怪的行为,使用Quarkus Kubernetes Config Extension并覆盖应用程序中的属性。yml
我们已经开始使用configmap环境变量来覆盖application.yml属性,如下所示:

QUARKUS_OIDC_AUTH_SERVER_URL: "https://sso.localhost/auth/realms/test"

预期它会覆盖application.yml中的任何设置并具有优先级,但事实并非如此。
相反,我们在application.yml中这样做,它工作正常。

quarkus:
  oidc:
    auth-server-url: ${QUARKUS_OIDC_AUTH_SERVER_URL:https://localhost:8543/auth/realms/test}

我们在configmap中的任何环境变量上都可以看到这一点,它意味着覆盖一个现有的application.yml属性。在本机构建之外,例如在我们的CI中,我们使用同样的策略来覆盖属性,它是有效的。
我们尝试的另一个测试是直接将QUARKUS_LOG_LEVEL更改为错误的内容。这显示在重新启动依赖于配置的pod后没有任何更改。对依赖于环境变量(${MY_LOG_LEVEL:debug})的属性执行相同操作时,如预期一样损坏。
使用Quarkus Kubernetes Config扩展时,最近是否有任何可能/应该影响属性优先级的更改?

rryofs0p

rryofs0p1#

这最终是我自己的错和纯粹的运气,它有工作,因为它以前(因为我主要是定义每个属性的配置文件)。
我能够利用新的profile.parent来构建一个更清晰的配置文件层次结构,并意识到(至少看起来是这样)kubernetes config扩展只处理应用程序属性,而不设置环境变量,因此,一旦我将这些作为configmap和secret包含在我的kubernetes配置中,一切都按预期运行。

kubernetes:
  env:
    configmaps:
       - my-configmap
    secrets:
       - my-secrets
kubernetes-config:
  config-maps:
    - my-configmap
    - my-service
  secrets:
    ~:
      - my-secrets

相关问题