...

Source file src/sigs.k8s.io/cli-utils/pkg/manifestreader/stream.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  	"io"
     8  
     9  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    10  	"sigs.k8s.io/kustomize/kyaml/kio"
    11  	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
    12  )
    13  
    14  // StreamManifestReader implements ManifestReader interface.
    15  var _ ManifestReader = &StreamManifestReader{}
    16  
    17  // StreamManifestReader reads manifest from the provided io.Reader
    18  // and returns them as Info objects. The returned Infos will not have
    19  // client or mapping set.
    20  type StreamManifestReader struct {
    21  	ReaderName string
    22  	Reader     io.Reader
    23  
    24  	ReaderOptions
    25  }
    26  
    27  // Read reads the manifests and returns them as Info objects.
    28  func (r *StreamManifestReader) Read() ([]*unstructured.Unstructured, error) {
    29  	var objs []*unstructured.Unstructured
    30  	nodes, err := (&kio.ByteReader{
    31  		Reader: r.Reader,
    32  	}).Read()
    33  	if err != nil {
    34  		return objs, err
    35  	}
    36  
    37  	for _, n := range nodes {
    38  		err = RemoveAnnotations(n, kioutil.IndexAnnotation)
    39  		if err != nil {
    40  			return objs, err
    41  		}
    42  		u, err := KyamlNodeToUnstructured(n)
    43  		if err != nil {
    44  			return objs, err
    45  		}
    46  		objs = append(objs, u)
    47  	}
    48  
    49  	objs = FilterLocalConfig(objs)
    50  
    51  	err = SetNamespaces(r.Mapper, objs, r.Namespace, r.EnforceNamespace)
    52  	return objs, err
    53  }
    54  

View as plain text