diff --git a/template/interpolate/render.go b/template/interpolate/render.go index 0225f762c..9fa1c0f7d 100644 --- a/template/interpolate/render.go +++ b/template/interpolate/render.go @@ -74,14 +74,14 @@ func (f *RenderFilter) include(k string) bool { } f.once.Do(f.init) - _, ok := f.includeSet[k] + _, ok := f.includeSet[strings.ToLower(k)] return ok } func (f *RenderFilter) init() { f.includeSet = make(map[string]struct{}) for _, v := range f.Include { - f.includeSet[v] = struct{}{} + f.includeSet[strings.ToLower(v)] = struct{}{} } } diff --git a/template/interpolate/render_test.go b/template/interpolate/render_test.go index f6e466029..60a88f6fb 100644 --- a/template/interpolate/render_test.go +++ b/template/interpolate/render_test.go @@ -76,6 +76,24 @@ func TestRenderMap(t *testing.T) { Include: []string{"bar"}, }, }, + + "filter case-insensitive": { + map[string]interface{}{ + "bar": "{{upper `baz`}}", + "foo": map[string]string{ + "{{upper `bar`}}": "{{upper `baz`}}", + }, + }, + map[string]interface{}{ + "bar": "BAZ", + "foo": map[string]string{ + "{{upper `bar`}}": "{{upper `baz`}}", + }, + }, + &RenderFilter{ + Include: []string{"baR"}, + }, + }, } ctx := &Context{}