在 Spring Boot 中将 Kubernetes Config Map 值获取到 application.properties

发布于 2025-01-10 08:32:06 字数 862 浏览 0 评论 0原文

在我们的项目中,我们使用 Azure Kubernetes 服务将基于 Spring Boot 的微服务部署到 Azure 中,并且我们有一个 Jenkins 作业,可以使用 Azure CLI 创建具有适当数据库名称的 ConfigMap。现在我想从 Jenkins 在 Spring Boot application.properties 中创建的 ConfigMap 中获取数据库名称的值。 Jenkins 作业使用以下代码在 AKS Now 中创建配置映射,

sh '''
     kubectl --kubeconfig ./temp-config create configmap generic ${PSQL_CONFIG} -n "${HEC_NAMESPACE}" \
     --from-literal=hec.postgres.host=${PSQL_SERVER} \
     --from-literal=hec.postgres.dbNames=[${DB_NAMES}] \
     --dry-run=client -o yaml | kubectl --kubeconfig ./temp-config apply ${DRYRUN} -f 
   '''

以获取我的 Spring Boot 应用程序中变量 DB_NAMES 的值,

1。我应该在 Spring Boot 项目中创建一个 configMap 并加载 DB 值吗?

2.或者我应该在 application.properties 中设置 DB_NAMES 变量,例如 hec.postgres.db-name={DB_NAMES}

一旦我填充了 DB_NAMES 值,我就可以在代码中使用我想要的方式 请让我知道哪种方法好

In our project we are deploying our Spring Boot based microservices into Azure using Azure Kubernetes Service and we have a Jenkins Job that creates ConfigMaps with appropriate DB names using Azure CLI . Now I want to get the values of DB Names from the ConfigMap created by Jenkins in my Spring Boot application.properties .
Jenkins job uses following code to create a configmap in AKS

sh '''
     kubectl --kubeconfig ./temp-config create configmap generic ${PSQL_CONFIG} -n "${HEC_NAMESPACE}" \
     --from-literal=hec.postgres.host=${PSQL_SERVER} \
     --from-literal=hec.postgres.dbNames=[${DB_NAMES}] \
     --dry-run=client -o yaml | kubectl --kubeconfig ./temp-config apply ${DRYRUN} -f 
   '''

Now to get the value of variable DB_NAMES in my Spring Boot app ,

1. Should I create a configMap inside a Spring Boot project and load the DB Values ?

2. Or should I set the DB_NAMES variable in the application.properties like
hec.postgres.db-name={DB_NAMES}

Once I have DB_NAMES values populated then I can use the way I want in my Code
Please let me know which approach is good

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悲歌长辞 2025-01-17 08:32:06

是的,在 configmap 对象中定义 DB_NAMES 变量和值,并将 configmap 中的值加载为容器内的环境变量。在 springboot 属性文件中使用这些环境变量。

Yes, define DB_NAMES variable and value in configmap object and load the values from configmap as environment variables inside the container. use those environment variables in the springboot properties file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文