Kubeconform Helm pre-commit插件执行时跳过文件问题求助
问题:kubeconform-helm pre-commit钩子跳过所有文件检测
我有如下Helm项目目录结构,尝试用kubeconform pre-commit钩子校验YAML文件,但每次执行都会提示无文件可检测并跳过:
Project ├── Makefile ├── helms │ └── test-files │ ├── Chart.yaml │ ├── templates │ │ ├── _helpers.tpl │ │ ├── test-configmap.yaml │ │ ├── test-deployment.yaml │ │ ├── test-service.yaml │ └── values.yaml ├──.pre-commit-config.yaml
当前.pre-commit-config.yaml配置:
repos: - repo: https://github.com/jtyr/kubeconform-helm rev: v0.1.16 hooks: - id: kubeconform-helm args: - --verbose - --summary
执行命令:
pre-commit run --all-files
执行输出:
Kubeconform Helm.....................................(no files to check)Skipped
解决方法
问题出在kubeconform-helm钩子的默认文件匹配规则上,它默认只匹配charts/**/Chart.yaml路径下的文件,但你的Helm chart放在helms目录下,不在默认匹配范围内,导致钩子找不到要触发检测的文件。
修改.pre-commit-config.yaml,给钩子添加files字段,指定匹配你项目中的Chart.yaml路径:
repos: - repo: https://github.com/jtyr/kubeconform-helm rev: v0.1.16 hooks: - id: kubeconform-helm args: - --verbose - --summary files: ^helms/.*/Chart.yaml$
^helms/.*/Chart.yaml$这个正则会匹配helms目录下任意子目录中的Chart.yaml文件,正好对应你的helms/test-files/Chart.yaml。- 当钩子找到匹配的
Chart.yaml后,会自动对该目录下的整个Helm chart(包括templates里的所有YAML)进行kubeconform校验。
修改后重新执行pre-commit run --all-files,钩子就会正常检测你的Helm文件了。
内容的提问来源于stack exchange,提问作者user9890324
相关产品推荐
相关产品推荐

