...

Source file src/edge-infra.dev/pkg/f8n/warehouse/oci/layer/mutate.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/oci/layer

     1  package layer
     2  
     3  import (
     4  	"bytes"
     5  
     6  	"sigs.k8s.io/kustomize/kyaml/kio"
     7  )
     8  
     9  // Filter creates a new Layer from the result of applying the input YAML filters
    10  // against the contents of Layer l
    11  // TODO: move to mutate
    12  func Filter(l Layer, filters ...kio.Filter) (Layer, error) {
    13  	r, err := l.Uncompressed()
    14  	if err != nil {
    15  		return nil, err
    16  	}
    17  
    18  	b := new(bytes.Buffer)
    19  	rw := &kio.ByteReadWriter{Reader: r, Writer: b}
    20  
    21  	if err := (kio.Pipeline{
    22  		Filters: filters,
    23  		Inputs:  []kio.Reader{rw},
    24  		Outputs: []kio.Writer{rw},
    25  	}).Execute(); err != nil {
    26  		return nil, err
    27  	}
    28  
    29  	return New(l.Type(), b.Bytes(), WithAnnotations(l.Annotations()))
    30  }
    31  

View as plain text