You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm复用环境变量:公共库Chart配置与引用方法咨询

公共环境变量复用方案

1. 编写common Chart的_helpers.tpl

在library类型的common Chart根目录下的_helpers.tpl文件中,定义输出公共环境变量列表的模板,支持配置读取与默认值兜底:

{{/*
通用环境变量模板,供所有业务服务引用
*/}}
{{- define "common.env" -}}
- name: APP_ENV
  value: {{ .Values.common.appEnv | default "production" }}
- name: LOG_LEVEL
  value: {{ .Values.common.logLevel | default "info" }}
- name: METRICS_PORT
  value: "{{ .Values.common.metricsPort | default 9090 }}"
- name: REDIS_HOST
  value: {{ .Values.common.redisHost | default "redis.default.svc.cluster.local" }}
{{- end -}}

模板命名为common.env,每个变量通过.Values.common.xxx读取全局配置,同时设置默认值,确保业务服务未配置时也能正常运行。

2. 在业务服务的deployment.yaml中引用

业务服务的Chart已配置common Chart依赖,直接在deployment的容器环境变量部分引入模板即可,注意保持yaml缩进对齐:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "my-service.fullname" . }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          env:
            # 引入公共环境变量模板
            {{- include "common.env" . | nindent 12 }}
            # 业务服务私有环境变量
            - name: SERVICE_SPECIFIC_VAR
              value: "{{ .Values.serviceSpecificVar }}"
            - name: DB_DATABASE
              value: {{ .Values.db.database }}

变量覆盖说明

如果业务服务需要修改某个公共变量的值,只需在自身Chart的values.yaml中配置对应字段即可,优先级高于common Chart的默认值:

# 业务服务values.yaml示例
common:
  logLevel: "debug" # 覆盖公共模板中的默认info级别

内容的提问来源于stack exchange,提问作者ashley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 01:35:03