在 Spring Boot 中将 Kubernetes Config Map 值放入 application.properties
Getting Kubernetes Config Map values into application.properties in Spring Boot
在我们的项目中,我们使用 Azure Kubernetes 服务将 Spring 基于引导的微服务部署到 Azure 中,并且我们有一个 Jenkins 作业,它使用 Azure CLI 创建具有适当数据库名称的 ConfigMap。现在我想从 Jenkins 在我的 Spring Boot application.properties 中创建的 ConfigMap 中获取数据库名称的值。
Jenkins 作业使用以下代码在 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
'''
现在在我的 Spring 引导应用程序中获取变量 DB_NAMES 的值,
1.我应该在 Spring 引导项目中创建一个 configMap 并加载数据库值吗?
2。或者我应该在 application.properties 中设置 DB_NAMES 变量
hec.postgres.db-姓名={DB_NAMES}
填充 DB_NAMES 值后,我就可以在我的代码中使用我想要的方式
请告诉我哪种方法好
是的,在 configmap 对象中定义 DB_NAMES
变量和值,并将 configmap 中的值作为容器内的环境变量加载。在 springboot 属性文件中使用这些环境变量。
在我们的项目中,我们使用 Azure Kubernetes 服务将 Spring 基于引导的微服务部署到 Azure 中,并且我们有一个 Jenkins 作业,它使用 Azure CLI 创建具有适当数据库名称的 ConfigMap。现在我想从 Jenkins 在我的 Spring Boot application.properties 中创建的 ConfigMap 中获取数据库名称的值。 Jenkins 作业使用以下代码在 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
'''
现在在我的 Spring 引导应用程序中获取变量 DB_NAMES 的值,
1.我应该在 Spring 引导项目中创建一个 configMap 并加载数据库值吗?
2。或者我应该在 application.properties 中设置 DB_NAMES 变量 hec.postgres.db-姓名={DB_NAMES}
填充 DB_NAMES 值后,我就可以在我的代码中使用我想要的方式 请告诉我哪种方法好
是的,在 configmap 对象中定义 DB_NAMES
变量和值,并将 configmap 中的值作为容器内的环境变量加载。在 springboot 属性文件中使用这些环境变量。