@@ -193,25 +193,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
193193 switch {
194194 case parent .Uri != "" :
195195 parentDevfileObj , err = parseFromURI (parent .ImportReference , d .Ctx , resolveCtx , tool )
196- if err != nil {
197- return err
198- }
199196 case parent .Id != "" :
200197 parentDevfileObj , err = parseFromRegistry (parent .ImportReference , resolveCtx , tool )
201- if err != nil {
202- return err
203- }
204198 case parent .Kubernetes != nil :
205199 parentDevfileObj , err = parseFromKubeCRD (parent .ImportReference , resolveCtx , tool )
206- if err != nil {
207- return err
208- }
209200 default :
210201 return fmt .Errorf ("devfile parent does not define any resources" )
211202 }
203+ if err != nil {
204+ return err
205+ }
212206
213207 parentWorkspaceContent := parentDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
208+ // add attribute to parent elements
209+ err = addSourceAttributesForOverrideAndMerge (parent .ImportReference , parentWorkspaceContent )
210+ if err != nil {
211+ return err
212+ }
214213 if ! reflect .DeepEqual (parent .ParentOverrides , v1.ParentOverrides {}) {
214+ // add attribute to parentOverrides elements
215+ curNodeImportReference := resolveCtx .importReference
216+ err = addSourceAttributesForOverrideAndMerge (curNodeImportReference , & parent .ParentOverrides )
217+ if err != nil {
218+ return err
219+ }
215220 flattenedParent , err = apiOverride .OverrideDevWorkspaceTemplateSpec (parentWorkspaceContent , parent .ParentOverrides )
216221 if err != nil {
217222 return err
@@ -236,22 +241,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
236241 switch {
237242 case plugin .Uri != "" :
238243 pluginDevfileObj , err = parseFromURI (plugin .ImportReference , d .Ctx , resolveCtx , tool )
239- if err != nil {
240- return err
241- }
242244 case plugin .Id != "" :
243245 pluginDevfileObj , err = parseFromRegistry (plugin .ImportReference , resolveCtx , tool )
244- if err != nil {
245- return err
246- }
247246 case plugin .Kubernetes != nil :
248247 pluginDevfileObj , err = parseFromKubeCRD (plugin .ImportReference , resolveCtx , tool )
249248 default :
250249 return fmt .Errorf ("plugin %s does not define any resources" , component .Name )
251250 }
251+ if err != nil {
252+ return err
253+ }
252254 pluginWorkspaceContent := pluginDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
255+ // add attribute to plugin elements
256+ err = addSourceAttributesForOverrideAndMerge (plugin .ImportReference , pluginWorkspaceContent )
257+ if err != nil {
258+ return err
259+ }
253260 flattenedPlugin := pluginWorkspaceContent
254261 if ! reflect .DeepEqual (plugin .PluginOverrides , v1.PluginOverrides {}) {
262+ // add attribute to pluginOverrides elements
263+ curNodeImportReference := resolveCtx .importReference
264+ err = addSourceAttributesForOverrideAndMerge (curNodeImportReference , & plugin .PluginOverrides )
265+ if err != nil {
266+ return err
267+ }
255268 flattenedPlugin , err = apiOverride .OverrideDevWorkspaceTemplateSpec (pluginWorkspaceContent , plugin .PluginOverrides )
256269 if err != nil {
257270 return err
0 commit comments