想象一下,你正对着一个 Helm Chart 的 values.yaml 文件发呆,或者在模板中敲 {{ .Values.xxx }} 时记不清具体路径——这时,CodeGeeX 插件能实时介入你的编辑过程,而不是等你写完再校验。它能根据现有模板结构,自动生成符合语义的字段、补全路径,甚至把一句自然语言描述直接转成 deployment 或 service 模板片段。下面就来逐步拆解具体操作流程。

安装并激活 CodeGeeX 插件
打开 VS Code 扩展市场(快捷键 Ctrl+Shift+X),搜索 CodeGeeX,选择最新发布的插件(作者为 Tongyi Lab)并安装。安装后务必重启 VS Code,否则插件无法加载上下文感知能力,补全功能可能失效。
确认插件已启用:按 Ctrl+Shift+P → 输入 Preferences: Open Settings (JSON) → 检查是否有 【"codegeex.enable": true】;若没有,手动添加该配置并保存。
让 CodeGeeX 理解你的 Helm Chart 项目结构
请确保 VS Code 工作区设置为 Helm Chart 根目录,即该文件夹下必须存在 Chart.yaml 和 values.yaml。插件只会扫描当前打开的根目录及其子目录,不会向上跨级查找。
右下角语言模式必须设为 YAML(不是 YAML (Kubernetes) 或 Plain Text)。点击右下角文字 → Change Language Mode → 输入 yaml 后回车。否则 CodeGeeX 不会触发与 Helm 相关的补全功能。
确保 templates/ 目录下至少有一个 .yaml 或 .tpl 文件,且其中包含类似 {{ .Values.service.port }} 的引用。插件需要借助这些模板字段反向构建 values 结构模型,空模板目录会导致补全无法生效。
在 values.yaml 中实时生成字段与注释
方法一:将光标置于 values.yaml 末尾空白处,输入 # 后按 Tab 键,CodeGeeX 会基于 templates/ 中所有 {{ .Values.xxx }} 引用,自动生成带说明的完整字段树,例如:
# service:
# port: 80 # HTTP 端口,用于 Service 的 targetPort 和容器端口映射
方法二:在已有字段名后输入 :(例如 replicaCount:),立刻按 Ctrl+Space 触发补全,CodeGeeX 会推荐类型提示(如 int)、默认值(1)以及注释模板,方便你快速填充。
注意:如果某个字段在 templates/ 中未被任何 {{ .Values.xxx }} 引用,CodeGeeX 不会为其生成补全项——它不随意猜测,只反映真实的模板依赖关系。
在 templates/*.yaml 中补全 .Values 路径
第一步:在模板文件中输入 {{ .Values.,松开手等待约 0.3 秒,CodeGeeX 会自动弹出补全列表,列出所有可用路径。
第二步:用方向键选择 image.repository 后按 Tab,自动补全为 {{ .Values.image.repository }},并且会高亮显示该字段在 values.yaml 中的定义位置(可通过 Ctrl+Click 跳转查看)。
第三步:如果选中 ingress.hosts[0].host,CodeGeeX 会检查 values.yaml 中是否已定义 ingress: 块;若未定义,会在行尾标注 ⚠️ missing in values.yaml,但【不会自动插入该结构】——需要手动补全,或者调用后续的生成功能。
用自然语言生成新模板片段
在 templates/ 目录下新建 ingress.yaml,光标定位到文件首行,输入注释:# 生成一个基于 host 的 Ingress,启用 TLS,证书由 cert-manager 签发。
选中该行注释 → 右键 → CodeGeeX: Generate Code from Comment → 等待 2~4 秒,生成的内容会自动插入到注释下方,包含 apiVersion、kind、tls 配置块、rules 映射以及注释说明,省去手动编写的繁琐过程。
生成结果默认使用 networking.k8s.io/v1 版本,如果目标集群版本低于 v1.19,需要手动将 apiVersion 改为 extensions/v1beta1 并调整 spec 字段结构——CodeGeeX 不会自动适配集群版本,需自行确认。
