...

Source file src/edge-infra.dev/pkg/edge/component/build/updatemanifests/update_manifests.go

Documentation: edge-infra.dev/pkg/edge/component/build/updatemanifests

     1  // Package updatemanifests provides a common library for updating Edge platform
     2  // manifests.
     3  package updatemanifests
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  
     9  	"sigs.k8s.io/kustomize/kyaml/kio"
    10  
    11  	"edge-infra.dev/pkg/edge/gitops/fns/edgerelease"
    12  	"edge-infra.dev/pkg/edge/gitops/fns/normalizer"
    13  	"edge-infra.dev/pkg/edge/yamlfmt"
    14  	"edge-infra.dev/pkg/lib/errors"
    15  )
    16  
    17  // Update builds a simple Kpt function pipeline from the provided
    18  // EdgeRelease object and the Normalizer function responsible for formatting
    19  // YAML resources.
    20  func Update(er edgerelease.EdgeRelease, path string) error {
    21  	n := normalizer.Normalizer{}
    22  
    23  	ignorer, err := yamlfmt.NewIgnorer(path)
    24  	if err != nil {
    25  		fmt.Println(err)
    26  		fmt.Printf("could not load ignorer with path %s\n", path)
    27  		os.Exit(1)
    28  	}
    29  
    30  	rw := kio.LocalPackageReadWriter{
    31  		PackagePath:  path,
    32  		FileSkipFunc: ignorer.IgnorePath,
    33  	}
    34  	err = kio.Pipeline{
    35  		Inputs:  []kio.Reader{&rw},
    36  		Outputs: []kio.Writer{&rw},
    37  		Filters: []kio.Filter{
    38  			kio.FilterFunc(er.Run),
    39  			kio.FilterFunc(n.Run),
    40  		},
    41  	}.Execute()
    42  
    43  	if err != nil {
    44  		return errors.New("failed to update manifests", err)
    45  	}
    46  	return nil
    47  }
    48  

View as plain text