Commit 70b29a47 authored by Matt Butcher's avatar Matt Butcher Committed by GitHub

Merge pull request #1368 from prydonius/1367-fix-linter-tmpl-regex

fix(lint): validateNoMissingValues template regex
parents 789e411d aed4db02
...@@ -71,11 +71,11 @@ func Templates(linter *support.Linter) { ...@@ -71,11 +71,11 @@ func Templates(linter *support.Linter) {
} }
/* Iterate over all the templates to check: /* Iterate over all the templates to check:
- It is a .yaml file - It is a .yaml file
- All the values in the template file is defined - All the values in the template file is defined
- {{}} include | quote - {{}} include | quote
- Generated content is a valid Yaml file - Generated content is a valid Yaml file
- Metadata.Namespace is not set - Metadata.Namespace is not set
*/ */
for _, template := range chart.Templates { for _, template := range chart.Templates {
fileName, preExecutedTemplate := template.Name, template.Data fileName, preExecutedTemplate := template.Name, template.Data
...@@ -154,12 +154,17 @@ func validateNoMissingValues(templatesPath string, chartValues chartutil.Values, ...@@ -154,12 +154,17 @@ func validateNoMissingValues(templatesPath string, chartValues chartutil.Values,
// 2 - Extract every function and execute them against the loaded values // 2 - Extract every function and execute them against the loaded values
// Supported {{ .Chart.Name }}, {{ .Chart.Name | quote }} // Supported {{ .Chart.Name }}, {{ .Chart.Name | quote }}
r, _ := regexp.Compile(`{{[\w|\.|\s|\|\"|\']+}}`) r, _ := regexp.Compile(`{{[\w.\s|"'-]+}}`)
functions := r.FindAllString(string(templateContent), -1) functions := r.FindAllString(string(templateContent), -1)
skipRegex, _ := regexp.Compile(`if|else|end`)
// Iterate over the {{ FOO }} templates, executing them against the chartValues // Iterate over the {{ FOO }} templates, executing them against the chartValues
// We do individual templates parsing so we keep the reference for the key (str) that we want it to be interpolated. // We do individual templates parsing so we keep the reference for the key (str) that we want it to be interpolated.
for _, str := range functions { for _, str := range functions {
if skipRegex.MatchString(str) {
continue
}
newtmpl, err := tmpl.Parse(str) newtmpl, err := tmpl.Parse(str)
if err != nil { if err != nil {
return err return err
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment