// Code generated by pluginator on LegacyOrderTransformer; DO NOT EDIT. package builtin import ( "github.com/pkg/errors" "sigs.k8s.io/kustomize/v3/pkg/ifc" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/resource" "sort" ) // Sort the resources using an ordering defined in the Gvk class. // This puts cluster-wide basic resources with no // dependencies (like Namespace, StorageClass, etc.) // first, and resources with a high number of dependencies // (like ValidatingWebhookConfiguration) last. type LegacyOrderTransformerPlugin struct{} //noinspection GoUnusedGlobalVariable func NewLegacyOrderTransformerPlugin() *LegacyOrderTransformerPlugin { return &LegacyOrderTransformerPlugin{} } // Nothing needed for configuration. func (p *LegacyOrderTransformerPlugin) Config( ldr ifc.Loader, rf *resmap.Factory, c []byte) (err error) { return nil } func (p *LegacyOrderTransformerPlugin) Transform(m resmap.ResMap) (err error) { resources := make([]*resource.Resource, m.Size()) ids := m.AllIds() sort.Sort(resmap.IdSlice(ids)) for i, id := range ids { resources[i], err = m.GetByCurrentId(id) if err != nil { return errors.Wrap(err, "expected match for sorting") } } m.Clear() for _, r := range resources { m.Append(r) } return nil }