...

Source file src/sigs.k8s.io/cli-utils/pkg/manifestreader/path.go

Documentation: sigs.k8s.io/cli-utils/pkg/manifestreader

     1  // Copyright 2020 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package manifestreader
     5  
     6  import (
     7  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
     8  	"sigs.k8s.io/kustomize/kyaml/kio"
     9  	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
    10  )
    11  
    12  // PathManifestReader implements ManifestReader interface.
    13  var _ ManifestReader = &PathManifestReader{}
    14  
    15  // PathManifestReader reads manifests from the provided path
    16  // and returns them as Info objects. The returned Infos will not have
    17  // client or mapping set.
    18  type PathManifestReader struct {
    19  	Path string
    20  
    21  	ReaderOptions
    22  }
    23  
    24  // Read reads the manifests and returns them as Info objects.
    25  func (p *PathManifestReader) Read() ([]*unstructured.Unstructured, error) {
    26  	var objs []*unstructured.Unstructured
    27  	nodes, err := (&kio.LocalPackageReader{
    28  		PackagePath: p.Path,
    29  	}).Read()
    30  	if err != nil {
    31  		return objs, err
    32  	}
    33  
    34  	for _, n := range nodes {
    35  		err = RemoveAnnotations(n, kioutil.IndexAnnotation)
    36  		if err != nil {
    37  			return objs, err
    38  		}
    39  		u, err := KyamlNodeToUnstructured(n)
    40  		if err != nil {
    41  			return objs, err
    42  		}
    43  		objs = append(objs, u)
    44  	}
    45  
    46  	objs = FilterLocalConfig(objs)
    47  
    48  	err = SetNamespaces(p.Mapper, objs, p.Namespace, p.EnforceNamespace)
    49  	return objs, err
    50  }
    51  

View as plain text