我必须在 kubernetes 集群中部署应用程序, 有不同的环境,如 dev 、 stg 、 prod 。 每个环境都有不同的配置映射。
因此使用 kustomize 从基本文件创建清单文件。
我想为每个环境生成配置映射。
以下是基本配置映射的代码, 我想覆盖每个环境的 CTRL_DB_IP。
我想使用配置图生成器。需要有关如何针对不同环境解析此 CTRL_DB_IP 的帮助。
apiVersion: v1
kind: ConfigMap
metadata:
name: controller-application-properties-configmap
namespace: controller
data:
application-ctr.properties: |
spring.threads.virtual.enabled=true
server.shutdown=graceful
spring.banner.location=classpath:banner.txt
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.datasource.url=jdbc:mysql://${CTRL_DB_IP}:3306/scloud?serverTimezone=UTC
使用 shell 脚本:
#!/bin/bash
for envir in dev stg prod;
do
export CTRL_DB_IP="...."
sed "s/\$CTRL_DB_IP\$/$CTRL_DB_IP/g" yourconfigmap.yaml | kubectl apply -n $envir -f -
done
文件 yourconfigmap.yaml 应包含以下文本:
apiVersion: v1
kind: ConfigMap
metadata:
name: controller-application-properties-configmap
namespace: controller
data:
application-ctr.properties: |
spring.threads.virtual.enabled=true
server.shutdown=graceful
spring.banner.location=classpath:banner.txt
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.datasource.url=jdbc:mysql://$CTRL_DB_IP$:3306/scloud?serverTimezone=UTC