mirror of https://github.com/fluxcd/cli-utils.git
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
// Copyright 2020 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package manifestreader
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
|
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
|
)
|
|
|
|
// PathManifestReader implements ManifestReader interface.
|
|
var _ ManifestReader = &PathManifestReader{}
|
|
|
|
// PathManifestReader reads manifests from the provided path
|
|
// and returns them as Info objects. The returned Infos will not have
|
|
// client or mapping set.
|
|
type PathManifestReader struct {
|
|
Path string
|
|
|
|
ReaderOptions
|
|
}
|
|
|
|
// Read reads the manifests and returns them as Info objects.
|
|
func (p *PathManifestReader) Read() ([]*unstructured.Unstructured, error) {
|
|
var objs []*unstructured.Unstructured
|
|
nodes, err := (&kio.LocalPackageReader{
|
|
PackagePath: p.Path,
|
|
}).Read()
|
|
if err != nil {
|
|
return objs, err
|
|
}
|
|
|
|
for _, n := range nodes {
|
|
err = RemoveAnnotations(n, kioutil.IndexAnnotation)
|
|
if err != nil {
|
|
return objs, err
|
|
}
|
|
u, err := KyamlNodeToUnstructured(n)
|
|
if err != nil {
|
|
return objs, err
|
|
}
|
|
objs = append(objs, u)
|
|
}
|
|
|
|
objs = FilterLocalConfig(objs)
|
|
|
|
err = SetNamespaces(p.Mapper, objs, p.Namespace, p.EnforceNamespace)
|
|
return objs, err
|
|
}
|