@@ -90,9 +90,15 @@ func (r *OpenshiftNotebookReconciler) syncRuntimeImagesConfigMap(ctx context.Con
90
90
if ! ok || metadataRaw == "" {
91
91
metadataRaw = "[]"
92
92
}
93
+ // Extract image URL
94
+ image_url , found , err := unstructured .NestedString (tagMap , "from" , "name" )
95
+ if err != nil || ! found {
96
+ log .Error (err , "Failed to extract image URL from ImageStream" , "ImageStream" , item .GetName ())
97
+ continue
98
+ }
93
99
94
100
// Parse metadata
95
- metadataParsed := parseRuntimeImageMetadata (metadataRaw )
101
+ metadataParsed := parseRuntimeImageMetadata (metadataRaw , image_url )
96
102
displayName := extractDisplayName (metadataParsed )
97
103
98
104
// Construct the key name
@@ -182,14 +188,22 @@ func formatKeyName(displayName string) string {
182
188
}
183
189
184
190
// parseRuntimeImageMetadata extracts the first object from the JSON array
185
- func parseRuntimeImageMetadata (rawJSON string ) string {
191
+ func parseRuntimeImageMetadata (rawJSON string , image_url string ) string {
186
192
var metadataArray []map [string ]interface {}
187
193
188
194
err := json .Unmarshal ([]byte (rawJSON ), & metadataArray )
189
195
if err != nil || len (metadataArray ) == 0 {
190
196
return "{}" // Return empty JSON object if parsing fails
191
197
}
192
198
199
+ // Insert image_url into the metadataArray
200
+ if metadataArray [0 ]["metadata" ] != nil {
201
+ metadata , ok := metadataArray [0 ]["metadata" ].(map [string ]interface {})
202
+ if ok {
203
+ metadata ["image_name" ] = image_url
204
+ }
205
+ }
206
+
193
207
// Convert first object back to JSON
194
208
metadataJSON , err := json .Marshal (metadataArray [0 ])
195
209
if err != nil {
0 commit comments