Kubernetes 使用头盔部署时,基于环境的不同grafana.ini

Kubernetes 使用头盔部署时,基于环境的不同grafana.ini,kubernetes,grafana,kubernetes-helm,helmfile,Kubernetes,Grafana,Kubernetes Helm,Helmfile,我正在使用一个自定义的舵图将格拉法纳部署到库伯内特斯。自定义grafana.ini文件在构建时复制到docker映像中,grafana.ini文件包含RDS实例连接配置和各种自定义身份验证设置。当我将多个环境引入混合环境时,这并不理想,因为每个构建都需要不同的grafana.ini文件,并且我希望使用相同的基本docker映像。它也不安全 我有三个kubernetes集群:dev、prepod和prod。关键的区别在于RDS配置 基于环境,将grafana.ini文件绑定到特定的grafana版

我正在使用一个自定义的舵图将格拉法纳部署到库伯内特斯。自定义grafana.ini文件在构建时复制到docker映像中,grafana.ini文件包含RDS实例连接配置和各种自定义身份验证设置。当我将多个环境引入混合环境时,这并不理想,因为每个构建都需要不同的grafana.ini文件,并且我希望使用相同的基本docker映像。它也不安全

我有三个kubernetes集群:dev、prepod和prod。关键的区别在于RDS配置

基于环境,将grafana.ini文件绑定到特定的grafana版本的最佳方式是什么。我可以使用某种参数化配置图吗


我正在使用helmfile部署helm图表,因此我熟悉为每个环境使用单独的values.yaml文件的概念,并将环境变量设置为正确的目标。

您可以将configmap作为卷装载到pod中

例如:

apiVersion: v1
kind: ConfigMap
metadata:
  creationTimestamp: null
  labels:
    env: prod
    app: metis
    client: ueuropea
  name: metis-clients-configmap
data:
  clients_db_config.yaml: |
    default-tenant:
      DB_HOST: dbhost
      DB_USERNAME: user
      DB_PASSWORD: pass
      DB_NAME: dbname
      DB_PORT: 3306
部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    env: dev
    app: metis
  name: metis-rules-evaluator-dev
spec:
  progressDeadlineSeconds: 3600
  replicas: 0
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
  template:
    metadata:
      labels:
        env: dev
        app: metis
        client: ueuropea
        mode: rules-evaluator
    spec:

      containers:
        - image: metis
          name: metis
          imagePullPolicy: Always
          resources: 
            requests:
              memory: "1024Mi"
              cpu: "3000m"
            limits:
              memory: "16384Mi"
              cpu: "4000m"
          volumeMounts:
            - name: config-vol
              mountPath: /usr/src/metis/config/
      volumes:
        - name: config-vol
          configMap:
            name: metis-clients-configmap
      terminationGracePeriodSeconds: 150
      restartPolicy: Always

在本例中,configmap数据将装载在路径:
/usr/src/metis/config/
上,并将创建文件
clients\u db\u config.yaml
,该文件也可以是一个.ini

,具有
configmap
,并从中设置特定于每个环境的变量听起来像是一种方法。