1
2
3
4 package resmap
5
6 import (
7 "sigs.k8s.io/kustomize/api/ifc"
8 "sigs.k8s.io/kustomize/api/internal/kusterr"
9 "sigs.k8s.io/kustomize/api/resource"
10 "sigs.k8s.io/kustomize/api/types"
11 "sigs.k8s.io/kustomize/kyaml/errors"
12 "sigs.k8s.io/kustomize/kyaml/yaml"
13 )
14
15
16 type Factory struct {
17
18 resF *resource.Factory
19 }
20
21
22 func NewFactory(rf *resource.Factory) *Factory {
23 return &Factory{resF: rf}
24 }
25
26
27 func (rmF *Factory) RF() *resource.Factory {
28 return rmF.resF
29 }
30
31 func New() ResMap {
32 return newOne()
33 }
34
35
36 func (rmF *Factory) FromResource(res *resource.Resource) ResMap {
37 m, err := newResMapFromResourceSlice([]*resource.Resource{res})
38 if err != nil {
39 panic(err)
40 }
41 return m
42 }
43
44
45 func (rmF *Factory) FromResourceSlice(ress []*resource.Resource) ResMap {
46 m, err := newResMapFromResourceSlice(ress)
47 if err != nil {
48 panic(err)
49 }
50 return m
51 }
52
53
54 func (rmF *Factory) FromFile(
55 loader ifc.Loader, path string) (ResMap, error) {
56 content, err := loader.Load(path)
57 if err != nil {
58 return nil, err
59 }
60 m, err := rmF.NewResMapFromBytes(content)
61 if err != nil {
62 return nil, kusterr.Handler(err, path)
63 }
64 return m, nil
65 }
66
67
68 func (rmF *Factory) NewResMapFromBytes(b []byte) (ResMap, error) {
69 resources, err := rmF.resF.SliceFromBytes(b)
70 if err != nil {
71 return nil, err
72 }
73 return newResMapFromResourceSlice(resources)
74 }
75
76
77
78 func (rmF *Factory) NewResMapFromConfigMapArgs(
79 kvLdr ifc.KvLoader, argList []types.ConfigMapArgs) (ResMap, error) {
80 var resources []*resource.Resource
81 for i := range argList {
82 res, err := rmF.resF.MakeConfigMap(kvLdr, &argList[i])
83 if err != nil {
84 return nil, errors.WrapPrefixf(err, "NewResMapFromConfigMapArgs")
85 }
86 resources = append(resources, res)
87 }
88 return newResMapFromResourceSlice(resources)
89 }
90
91
92 func (rmF *Factory) FromConfigMapArgs(
93 kvLdr ifc.KvLoader, args types.ConfigMapArgs) (ResMap, error) {
94 res, err := rmF.resF.MakeConfigMap(kvLdr, &args)
95 if err != nil {
96 return nil, err
97 }
98 return rmF.FromResource(res), nil
99 }
100
101
102
103 func (rmF *Factory) NewResMapFromSecretArgs(
104 kvLdr ifc.KvLoader, argsList []types.SecretArgs) (ResMap, error) {
105 var resources []*resource.Resource
106 for i := range argsList {
107 res, err := rmF.resF.MakeSecret(kvLdr, &argsList[i])
108 if err != nil {
109 return nil, errors.WrapPrefixf(err, "NewResMapFromSecretArgs")
110 }
111 resources = append(resources, res)
112 }
113 return newResMapFromResourceSlice(resources)
114 }
115
116
117 func (rmF *Factory) FromSecretArgs(
118 kvLdr ifc.KvLoader, args types.SecretArgs) (ResMap, error) {
119 res, err := rmF.resF.MakeSecret(kvLdr, &args)
120 if err != nil {
121 return nil, err
122 }
123 return rmF.FromResource(res), nil
124 }
125
126 func newResMapFromResourceSlice(
127 resources []*resource.Resource) (ResMap, error) {
128 result := New()
129 for _, res := range resources {
130 err := result.Append(res)
131 if err != nil {
132 return nil, err
133 }
134 }
135 return result, nil
136 }
137
138
139 func (rmF *Factory) NewResMapFromRNodeSlice(s []*yaml.RNode) (ResMap, error) {
140 rs, err := rmF.resF.ResourcesFromRNodes(s)
141 if err != nil {
142 return nil, err
143 }
144 return newResMapFromResourceSlice(rs)
145 }
146
View as plain text