mirror of
https://github.com/helm/helm.git
synced 2026-05-19 08:32:51 -04:00
fix(lint): validateNoMissingValues template regex
Fixes the regex for extracting templates to include templates that suppress newlines and ignore any conditional flow statements.
This commit is contained in:
parent
a324146945
commit
aed4db02e8
1 changed files with 11 additions and 6 deletions
|
|
@ -71,11 +71,11 @@ func Templates(linter *support.Linter) {
|
|||
}
|
||||
|
||||
/* Iterate over all the templates to check:
|
||||
- It is a .yaml file
|
||||
- All the values in the template file is defined
|
||||
- {{}} include | quote
|
||||
- Generated content is a valid Yaml file
|
||||
- Metadata.Namespace is not set
|
||||
- It is a .yaml file
|
||||
- All the values in the template file is defined
|
||||
- {{}} include | quote
|
||||
- Generated content is a valid Yaml file
|
||||
- Metadata.Namespace is not set
|
||||
*/
|
||||
for _, template := range chart.Templates {
|
||||
fileName, preExecutedTemplate := template.Name, template.Data
|
||||
|
|
@ -154,12 +154,17 @@ func validateNoMissingValues(templatesPath string, chartValues chartutil.Values,
|
|||
|
||||
// 2 - Extract every function and execute them against the loaded values
|
||||
// Supported {{ .Chart.Name }}, {{ .Chart.Name | quote }}
|
||||
r, _ := regexp.Compile(`{{[\w|\.|\s|\|\"|\']+}}`)
|
||||
r, _ := regexp.Compile(`{{[\w.\s|"'-]+}}`)
|
||||
functions := r.FindAllString(string(templateContent), -1)
|
||||
|
||||
skipRegex, _ := regexp.Compile(`if|else|end`)
|
||||
|
||||
// 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.
|
||||
for _, str := range functions {
|
||||
if skipRegex.MatchString(str) {
|
||||
continue
|
||||
}
|
||||
newtmpl, err := tmpl.Parse(str)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
|||
Loading…
Reference in a new issue