Kubernetes kustomize configmap

问题描述 投票:0回答:1

我必须在 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

kubernetes kustomize
1个回答
0
投票

使用 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
© www.soinside.com 2019 - 2024. All rights reserved.