mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Include json files for fn source
This commit is contained in:
@@ -101,6 +101,9 @@ type ByteReader struct {
|
||||
// WrappingKind is set by Read(), and is the kind of the object that
|
||||
// the read objects were originally wrapped in.
|
||||
WrappingKind string
|
||||
|
||||
// JSON indicates if the input file source is json
|
||||
JSON bool
|
||||
}
|
||||
|
||||
var _ Reader = &ByteReader{}
|
||||
@@ -119,7 +122,14 @@ func (r *ByteReader) Read() ([]*yaml.RNode, error) {
|
||||
|
||||
index := 0
|
||||
for i := range values {
|
||||
decoder := yaml.NewDecoder(bytes.NewBufferString(values[i]))
|
||||
value := values[i]
|
||||
if r.JSON {
|
||||
value, err = yaml.ConvertJSONToYamlString(value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
decoder := yaml.NewDecoder(bytes.NewBufferString(value))
|
||||
node, err := r.decode(index, decoder)
|
||||
if err == io.EOF {
|
||||
continue
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
||||
@@ -162,10 +163,18 @@ type LocalPackageReader struct {
|
||||
|
||||
// SetAnnotations are annotations to set on the Resources as they are read.
|
||||
SetAnnotations map[string]string `yaml:"setAnnotations,omitempty"`
|
||||
|
||||
// IncludeJSON indicates if the json resources files must be included during read
|
||||
IncludeJSON bool
|
||||
}
|
||||
|
||||
var _ Reader = LocalPackageReader{}
|
||||
|
||||
const (
|
||||
JSONFilePattern = "*.json"
|
||||
JSONSuffix = ".json"
|
||||
)
|
||||
|
||||
var DefaultMatch = []string{"*.yaml", "*.yml"}
|
||||
|
||||
// Read reads the Resources.
|
||||
@@ -178,6 +187,9 @@ func (r LocalPackageReader) Read() ([]*yaml.RNode, error) {
|
||||
r.PackagePath = filepath.ToSlash(r.PackagePath)
|
||||
if len(r.MatchFilesGlob) == 0 {
|
||||
r.MatchFilesGlob = DefaultMatch
|
||||
if r.IncludeJSON {
|
||||
r.MatchFilesGlob = append(r.MatchFilesGlob, JSONFilePattern)
|
||||
}
|
||||
}
|
||||
|
||||
var operand ResourceNodeSlice
|
||||
@@ -243,6 +255,7 @@ func (r *LocalPackageReader) readFile(path string, _ os.FileInfo) ([]*yaml.RNode
|
||||
Reader: f,
|
||||
OmitReaderAnnotations: r.OmitReaderAnnotations,
|
||||
SetAnnotations: r.SetAnnotations,
|
||||
JSON: strings.HasSuffix(path, JSONSuffix),
|
||||
}
|
||||
return rr.Read()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user