@@ -216,7 +216,7 @@ func explodeImage(image string) (baseImage, tag, digest string) {
216216 if ! hasTag {
217217 tag = ""
218218 }
219- return
219+ return baseImage , tag , digest
220220}
221221
222222// ComputeTarget determines the target update version and state given an update
@@ -228,15 +228,15 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
228228 if len (digest ) > 0 || len (tag ) > 0 {
229229 state = State {Tag : tag , Digest : digest }
230230 baseImage = explodedBaseImage
231- return
231+ return baseImage , target , state , err
232232 }
233233
234234 // The base image in the .spec.config.image field takes precedence over the
235235 // .spec.baseImage field, which takes precedence over the global base image.
236236 baseImage = cmp .Or (explodedBaseImage , clusterBaseImage , operatorImageName )
237237 if baseImage == "" {
238238 err = fmt .Errorf ("no base image specified in cluster spec, startup flag, or operator config" )
239- return
239+ return baseImage , target , state , err
240240 }
241241
242242 // Fallback to the channel from the current currentVersion.
@@ -249,7 +249,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
249249 channel , err = g .DefaultChannelForDatastore (engine )
250250 if err != nil {
251251 err = fmt .Errorf ("couldn't find channel for datastore %q: %w" , engine , err )
252- return
252+ return baseImage , target , state , err
253253 }
254254 }
255255
@@ -258,7 +258,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
258258 updateSource , err = g .SourceForChannel (engine , channel )
259259 if err != nil {
260260 err = fmt .Errorf ("error fetching update source: %w" , err )
261- return
261+ return baseImage , target , state , err
262262 }
263263 }
264264
@@ -277,14 +277,14 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
277277 state = updateSource .State (version )
278278 target .Name = state .ID
279279 target .Attributes = []v1alpha1.SpiceDBVersionAttributes {v1alpha1 .SpiceDBVersionAttributesMigration }
280- return
280+ return baseImage , target , state , err
281281 }
282282
283283 // If version is explicit, and the explicit version matches the current
284284 // version, just install it
285285 if currentVersion != nil && currentVersion .Name == version && currentVersion .Channel == channel {
286286 state = updateSource .State (currentVersion .Name )
287- return
287+ return baseImage , target , state , err
288288 }
289289
290290 var currentState State
@@ -298,7 +298,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
298298 source , err = g .SourceForChannel (engine , currentVersion .Channel )
299299 if err != nil {
300300 err = fmt .Errorf ("error fetching update source: %w" , err )
301- return
301+ return baseImage , target , state , err
302302 }
303303 currentState = source .State (currentVersion .Name )
304304 target .Channel = currentVersion .Channel
@@ -315,10 +315,10 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
315315 if len (currentState .ID ) == 0 {
316316 target = nil
317317 err = fmt .Errorf ("cluster is rolling out, but no current state is defined" )
318- return
318+ return baseImage , target , state , err
319319 }
320320 state = currentState
321- return
321+ return baseImage , target , state , err
322322 }
323323
324324 // If currentVersion is set, we only use the subset of the update graph that leads
@@ -327,7 +327,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
327327 updateSource , err = updateSource .Subgraph (version )
328328 if err != nil {
329329 err = fmt .Errorf ("error finding update path from %s to %s" , currentVersion .Name , version )
330- return
330+ return baseImage , target , state , err
331331 }
332332 }
333333
@@ -337,7 +337,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
337337 if len (targetVersion ) == 0 {
338338 // There's no next currentVersion, so use the current state.
339339 state = currentState
340- return
340+ return baseImage , target , state , err
341341 }
342342 if targetVersion != updateSource .NextVersionWithoutMigrations (currentVersion .Name ) {
343343 target .Attributes = []v1alpha1.SpiceDBVersionAttributes {v1alpha1 .SpiceDBVersionAttributesMigration }
@@ -351,7 +351,7 @@ func (g *UpdateGraph) ComputeTarget(operatorImageName, clusterBaseImage, image,
351351 // If we found the next step to take, return it.
352352 state = updateSource .State (targetVersion )
353353 target .Name = state .ID
354- return
354+ return baseImage , target , state , err
355355}
356356
357357// Difference returns a graph that contains just edges in g that are not
0 commit comments