@@ -9,13 +9,11 @@ import (
9
9
"path/filepath"
10
10
"strings"
11
11
12
- y "github.com/ghodss/yaml"
13
12
"github.com/pkg/errors"
14
13
"golang.stackrox.io/kube-linter/internal/k8sutil"
15
14
"helm.sh/helm/v3/pkg/chart"
16
15
"helm.sh/helm/v3/pkg/chart/loader"
17
16
"helm.sh/helm/v3/pkg/chartutil"
18
- "helm.sh/helm/v3/pkg/cli/values"
19
17
"helm.sh/helm/v3/pkg/engine"
20
18
v1 "k8s.io/api/core/v1"
21
19
"k8s.io/apimachinery/pkg/runtime"
@@ -84,10 +82,9 @@ func (l *lintContextImpl) renderHelmChart(dir string) (map[string]string, error)
84
82
if err := chrt .Validate (); err != nil {
85
83
return nil , err
86
84
}
87
- valOpts := & values.Options {ValueFiles : []string {filepath .Join (dir , "values.yaml" )}}
88
- values , err := valOpts .MergeValues (nil )
85
+ values , err := l .helmValuesOptions .MergeValues (nil )
89
86
if err != nil {
90
- return nil , errors .Wrap (err , "loading values.yaml file " )
87
+ return nil , errors .Wrap (err , "loading provided Helm value options " )
91
88
}
92
89
return l .renderValues (chrt , values )
93
90
}
@@ -155,37 +152,14 @@ func (l *lintContextImpl) renderTgzHelmChart(tgzFile string) (map[string]string,
155
152
return nil , err
156
153
}
157
154
158
- valuesIndex := - 1
159
- for i , f := range chrt .Raw {
160
- if f .Name == "values.yaml" {
161
- valuesIndex = i
162
- break
163
- }
164
- }
165
-
166
- indexName := filepath .Join (tgzFile , "values.yaml" )
167
- if valuesIndex == - 1 {
168
- return nil , errors .Errorf ("%s not found" , indexName )
169
- }
170
-
171
- values , err := l .parseValues (indexName , chrt .Raw [valuesIndex ].Data )
155
+ values , err := l .helmValuesOptions .MergeValues (nil )
172
156
if err != nil {
173
- return nil , errors .Wrap (err , "loading values.yaml file " )
157
+ return nil , errors .Wrap (err , "loading provided Helm value options " )
174
158
}
175
159
176
160
return l .renderValues (chrt , values )
177
161
}
178
162
179
- func (l * lintContextImpl ) parseValues (filePath string , bytes []byte ) (map [string ]interface {}, error ) {
180
- currentMap := map [string ]interface {}{}
181
-
182
- if err := y .Unmarshal (bytes , & currentMap ); err != nil {
183
- return nil , errors .Wrapf (err , "failed to parse %s" , filePath )
184
- }
185
-
186
- return currentMap , nil
187
- }
188
-
189
163
func (l * lintContextImpl ) loadObjectFromYAMLReader (filePath string , r * yaml.YAMLReader ) error {
190
164
doc , err := r .Read ()
191
165
if err != nil {
0 commit comments