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

在Azure DevOps流水线中,如何打印kubectl kustomize的输入deployment.yml文件?

查看Helm Post-Renderer传入Kustomize的deployment.yml内容

问题场景

Azure DevOps流水线通过Helm部署Chart,使用--post-renderer参数指定脚本执行kubectl kustomize ./。kustomization.yaml配置如下:

resources:
  - deployment.yml 
patches:
  - target:      
      kind: Deployment      
    path: set_affinitytolerations.yml

运行时触发错误:

error: accumulating resources: accumulating resources from 'deployment.yml': MalformedYAMLError: yaml: line 3: did not find expected key in File: deployment.yml

使用版本:

Client Version: v1.32.0
Kustomize Version: v5.5.0
Server Version: v1.26.10+rke2r2

已查看kubectl kustomize --help未找到直接打印输入文件的选项。

可行解决方案

1. 修改Post-Renderer脚本,临时保存并打印内容

如果脚本直接读取本地deployment.yml,可在执行kustomize前添加打印步骤:

#!/bin/bash
# 打印deployment.yml内容
echo "=== deployment.yml 内容 ==="
cat deployment.yml
echo "=== 内容结束 ==="
# 执行kustomize
kubectl kustomize ./

如果deployment.yml是Helm通过stdin传入的(脚本需接收Helm渲染后的YAML),则先将stdin写入文件再打印:

#!/bin/bash
# 将Helm传入的内容保存到deployment.yml
cat > deployment.yml
# 打印文件内容
echo "=== Helm传入的deployment.yml 内容 ==="
cat deployment.yml
echo "=== 内容结束 ==="
# 执行kustomize
kubectl kustomize ./

流水线日志会输出文件内容,方便排查YAML格式问题。

2. 在Azure DevOps流水线中添加前置打印步骤

若deployment.yml是流水线提前生成的文件,可在helm upgrade步骤前添加bash任务打印内容:

- bash: |
    echo "=== deployment.yml 内容 ==="
    cat ./deployment.yml
    echo "=== 内容结束 ==="
  displayName: '打印deployment.yml内容'

3. 使用Kustomize的调试模式

尝试添加--debug参数执行kustomize,该参数会输出更详细的资源加载日志,可能包含deployment.yml的内容:

kubectl kustomize --debug ./

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:15:08