@@ -42,16 +42,44 @@ type Plain struct {
42
42
}
43
43
44
44
func RegistryV1ToHelmChart (ctx context.Context , rv1 fs.FS , installNamespace string , watchNamespaces []string ) (* chart.Chart , error ) {
45
+ reg , err := ParseFS (ctx , rv1 )
46
+ if err != nil {
47
+ return nil , err
48
+ }
49
+
50
+ plain , err := Convert (reg , installNamespace , watchNamespaces )
51
+ if err != nil {
52
+ return nil , err
53
+ }
54
+
55
+ chrt := & chart.Chart {Metadata : & chart.Metadata {}}
56
+ chrt .Metadata .Annotations = reg .CSV .GetAnnotations ()
57
+ for _ , obj := range plain .Objects {
58
+ jsonData , err := json .Marshal (obj )
59
+ if err != nil {
60
+ return nil , err
61
+ }
62
+ hash := sha256 .Sum256 (jsonData )
63
+ chrt .Templates = append (chrt .Templates , & chart.File {
64
+ Name : fmt .Sprintf ("object-%x.json" , hash [0 :8 ]),
65
+ Data : jsonData ,
66
+ })
67
+ }
68
+
69
+ return chrt , nil
70
+ }
71
+
72
+ func ParseFS (ctx context.Context , rv1 fs.FS ) (RegistryV1 , error ) {
45
73
l := log .FromContext (ctx )
46
74
47
75
reg := RegistryV1 {}
48
76
annotationsFileData , err := fs .ReadFile (rv1 , filepath .Join ("metadata" , "annotations.yaml" ))
49
77
if err != nil {
50
- return nil , err
78
+ return reg , err
51
79
}
52
80
annotationsFile := registry.AnnotationsFile {}
53
81
if err := yaml .Unmarshal (annotationsFileData , & annotationsFile ); err != nil {
54
- return nil , err
82
+ return reg , err
55
83
}
56
84
reg .PackageName = annotationsFile .Annotations .PackageName
57
85
@@ -100,14 +128,14 @@ func RegistryV1ToHelmChart(ctx context.Context, rv1 fs.FS, installNamespace stri
100
128
}
101
129
return nil
102
130
}); err != nil {
103
- return nil , err
131
+ return reg , err
104
132
}
105
133
106
134
if err := copyMetadataPropertiesToCSV (& reg .CSV , rv1 ); err != nil {
107
- return nil , err
135
+ return reg , err
108
136
}
109
137
110
- return toChart ( reg , installNamespace , watchNamespaces )
138
+ return reg , nil
111
139
}
112
140
113
141
// copyMetadataPropertiesToCSV copies properties from `metadata/propeties.yaml` (in the filesystem fsys) into
@@ -158,29 +186,6 @@ func copyMetadataPropertiesToCSV(csv *v1alpha1.ClusterServiceVersion, fsys fs.FS
158
186
return nil
159
187
}
160
188
161
- func toChart (in RegistryV1 , installNamespace string , watchNamespaces []string ) (* chart.Chart , error ) {
162
- plain , err := Convert (in , installNamespace , watchNamespaces )
163
- if err != nil {
164
- return nil , err
165
- }
166
-
167
- chrt := & chart.Chart {Metadata : & chart.Metadata {}}
168
- chrt .Metadata .Annotations = in .CSV .GetAnnotations ()
169
- for _ , obj := range plain .Objects {
170
- jsonData , err := json .Marshal (obj )
171
- if err != nil {
172
- return nil , err
173
- }
174
- hash := sha256 .Sum256 (jsonData )
175
- chrt .Templates = append (chrt .Templates , & chart.File {
176
- Name : fmt .Sprintf ("object-%x.json" , hash [0 :8 ]),
177
- Data : jsonData ,
178
- })
179
- }
180
-
181
- return chrt , nil
182
- }
183
-
184
189
func validateTargetNamespaces (supportedInstallModes sets.Set [string ], installNamespace string , targetNamespaces []string ) error {
185
190
set := sets .New [string ](targetNamespaces ... )
186
191
switch {
0 commit comments