我正在开发一个图表,但我发错了 - {错误地放置imagePullSecrets
。当我尝试通过
helm install ./mychart
错位的元素被忽略了,我想知道出了什么问题。
当我做的时候
helm template ./mychart | kubectl apply --dry-run -f -
而是打印出来的:
error: error validating "STDIN": error validating data: ValidationError(Deployment.spec.template.spec.containers[0]): unknown field "imagePullSecrets" in io.k8s.api.core.v1.Container
清楚地表明出了什么问题。我不确定它是否与分蘖实际对扩展模板的作用相匹配。
但如果我只是做一个
helm install --dry-run --debug ./mychart
它只显示扩展的模板,看起来没问题。
那么如何正确验证我的所有模板与helm相匹配的模式?
答案 0 :(得分:0)
您可以通过转到helm lint ./mychart
来对图表进行整理,如果发现问题,则应打印以下内容:
$ helm lint ./mychart
==> Linting ./mychart
[ERROR] Chart.yaml: version is required
[INFO] Chart.yaml: icon is recommended
Error: 1 chart(s) linted, 1 chart(s) failed
请参见helm lint。
答案 1 :(得分:0)
使用kubeval
。
helm template ./mychart | kubeval --strict
如果您有CRD,则可能需要使用kubeval --ignore-missing-schemas
。我建议提供架构版本:kubeval -v 1.18
。
建议:专门对图表进行验证。示例如下。
简单:
helm template --set some.key="val" | kubeval --strict
复杂:
VALUES_FILE=$(cat << EOF
some:
key: "val"
another:
key:
another: "val"
EOF
)
# It is important to quote "$VALUES_FILE" to ensure line breaks and indentation are preserved
echo "$VALUES_FILE" | helm template -f - | kubeval --strict