Kustomize中vars使用方法相关文档查询,支持无需ConfigMap/Secret声明场景
Kustomize vars功能使用说明
你提到的vars是Kustomize内置的跨资源变量引用能力,原生设计上要求所有变量值必须从已声明的Kubernetes资源(ConfigMap、Secret、Service等)的字段中提取,暂不支持直接在vars字段中声明固定字面量值。
如果你不想额外维护独立的ConfigMap/Secret资源,又需要直接用固定值作为变量,可以用以下两种实现方案:
方案1:临时ConfigMap中转+自动清理
通过configMapGenerator生成临时存储字面量的ConfigMap,配合vars取值,最后通过补丁删除这个临时资源,避免部署到集群:
# kustomization.yaml 示例 configMapGenerator: - name: temp-vars literals: # 直接在这里写你的固定变量值 - ROUTE_HOST=myapp.test.com options: disableNameSuffixHash: true vars: - name: ROUTE_HOST objref: kind: ConfigMap name: temp-vars apiVersion: v1 fieldref: fieldpath: data.ROUTE_HOST # 加入这部分配置,自动排除临时ConfigMap不部署 patches: - target: kind: ConfigMap name: temp-vars patch: |- $patch: delete
方案2:使用replacements功能(推荐,Kustomize v4.5.0+支持)
replacements是vars的升级替代功能,原生支持直接声明字面量值,不需要依赖任何中间资源:
# kustomization.yaml 示例 replacements: - source: # 直接写固定变量值,无需关联资源 value: myapp.test.com targets: # 配置需要注入该值的资源和对应字段 - select: kind: Ingress name: my-app-ingress fieldPaths: - spec.rules.0.host
内容的提问来源于stack exchange,提问作者cosmos-1905-14
相关产品推荐
相关产品推荐

