@@ -298,29 +298,30 @@ func apiServiceDescriptionsForDeployment(descs []v1alpha1.APIServiceDescription,
298
298
return result
299
299
}
300
300
301
- func (a * Operator ) installOwnedAPIServiceRequirements (csv * v1alpha1.ClusterServiceVersion , strategy install.Strategy ) (install.Strategy , error ) {
301
+ func (a * Operator ) installOwnedAPIServiceRequirements (csv * v1alpha1.ClusterServiceVersion , strategy install.Strategy ) (install.Strategy , map [ string ][] byte , error ) {
302
302
logger := log .WithFields (log.Fields {
303
303
"csv" : csv .GetName (),
304
304
"namespace" : csv .GetNamespace (),
305
305
})
306
306
307
307
// Assume the strategy is for a deployment
308
+ deploymentNameToCAPEM := map [string ][]byte {}
308
309
strategyDetailsDeployment , ok := strategy .(* v1alpha1.StrategyDetailsDeployment )
309
310
if ! ok {
310
- return nil , fmt .Errorf ("unsupported InstallStrategy type" )
311
+ return nil , deploymentNameToCAPEM , fmt .Errorf ("unsupported InstallStrategy type" )
311
312
}
312
313
313
314
// Return early if there are no owned APIServices
314
315
if len (csv .Spec .APIServiceDefinitions .Owned ) == 0 {
315
- return strategyDetailsDeployment , nil
316
+ return strategyDetailsDeployment , deploymentNameToCAPEM , nil
316
317
}
317
318
318
319
// Create the CA
319
320
expiration := time .Now ().Add (DefaultCertValidFor )
320
321
ca , err := certs .GenerateCA (expiration , Organization )
321
322
if err != nil {
322
323
logger .Debug ("failed to generate CA" )
323
- return nil , err
324
+ return nil , deploymentNameToCAPEM , err
324
325
}
325
326
rotateAt := expiration .Add (- 1 * DefaultCertMinFresh )
326
327
@@ -334,25 +335,22 @@ func (a *Operator) installOwnedAPIServiceRequirements(csv *v1alpha1.ClusterServi
334
335
// Update the deployment for each api service desc
335
336
newDepSpec , err := a .installAPIServiceRequirements (sddSpec .Name , ca , rotateAt , sddSpec .Spec , csv , getServicePorts (descs ))
336
337
if err != nil {
337
- return nil , err
338
+ return nil , deploymentNameToCAPEM , err
338
339
}
339
340
340
341
caPEM , _ , err := ca .ToPEM ()
341
342
if err != nil {
342
343
logger .Warnf ("unable to convert CA certificate to PEM format for Deployment %s" , sddSpec .Name )
343
- return nil , err
344
+ return nil , deploymentNameToCAPEM , err
344
345
}
345
346
346
- for _ , desc := range descs {
347
- err = a .createOrUpdateAPIService (caPEM , desc , csv )
348
- if err != nil {
349
- return nil , err
350
- }
347
+ deploymentNameToCAPEM [sddSpec .Name ] = caPEM
351
348
349
+ for _ , desc := range descs {
352
350
// Cleanup legacy resources
353
351
err = a .deleteLegacyAPIServiceResources (csv , desc )
354
352
if err != nil {
355
- return nil , err
353
+ return nil , deploymentNameToCAPEM , err
356
354
}
357
355
}
358
356
strategyDetailsDeployment .DeploymentSpecs [i ].Spec = * newDepSpec
@@ -364,7 +362,7 @@ func (a *Operator) installOwnedAPIServiceRequirements(csv *v1alpha1.ClusterServi
364
362
csv .Status .CertsLastUpdated = & now
365
363
csv .Status .CertsRotateAt = & rotateTime
366
364
367
- return strategyDetailsDeployment , nil
365
+ return strategyDetailsDeployment , deploymentNameToCAPEM , nil
368
366
}
369
367
370
368
// updateDeploymentSpecsWithApiServiceData transforms an install strategy to include information about apiservices
0 commit comments