@@ -209,22 +209,21 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
209209 nsConditions := instance .Status .NodeSetConditions [nodeSet .Name ]
210210
211211 for _ , serviceName := range services {
212- service , err := deployment .GetService (ctx , helper , serviceName )
212+ service , err := r .GetService (ctx , helper , instance , nsConditions , serviceName )
213213 if err != nil {
214- instance .Status .Conditions .MarkFalse (
215- condition .InputReadyCondition ,
216- condition .ErrorReason ,
217- condition .SeverityError ,
218- dataplanev1 .ServiceErrorMessage ,
219- err .Error ())
220- nsConditions .MarkFalse (
221- dataplanev1 .NodeSetDeploymentReadyCondition ,
222- condition .ErrorReason ,
223- condition .SeverityError ,
224- dataplanev1 .ServiceErrorMessage ,
225- err .Error ())
226214 return ctrl.Result {}, err
227215 }
216+
217+ // If there is a different EDPMServiceType set and TLSCerts is
218+ // not also set, get the service referenced by EDPMServiceType
219+ // instead and use its cert data.
220+ if serviceName != service .Spec .EDPMServiceType && service .Spec .TLSCerts == nil {
221+ service , err = r .GetService (ctx , helper , instance , nsConditions , service .Spec .EDPMServiceType )
222+ if err != nil {
223+ return ctrl.Result {}, err
224+ }
225+ }
226+
228227 if service .Spec .TLSCerts != nil {
229228 for certKey := range service .Spec .TLSCerts {
230229 result , err := deployment .EnsureTLSCerts (ctx , helper , & nodeSet ,
@@ -397,6 +396,32 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
397396 return ctrl.Result {}, nil
398397}
399398
399+ // GetService
400+ func (r * OpenStackDataPlaneDeploymentReconciler ) GetService (
401+ ctx context.Context ,
402+ helper * helper.Helper ,
403+ instance * dataplanev1.OpenStackDataPlaneDeployment ,
404+ nsConditions condition.Conditions ,
405+ serviceName string ,
406+ ) (dataplanev1.OpenStackDataPlaneService , error ) {
407+ service , err := deployment .GetService (ctx , helper , serviceName )
408+ if err != nil {
409+ instance .Status .Conditions .MarkFalse (
410+ condition .InputReadyCondition ,
411+ condition .ErrorReason ,
412+ condition .SeverityError ,
413+ dataplanev1 .ServiceErrorMessage ,
414+ err .Error ())
415+ nsConditions .MarkFalse (
416+ dataplanev1 .NodeSetDeploymentReadyCondition ,
417+ condition .ErrorReason ,
418+ condition .SeverityError ,
419+ dataplanev1 .ServiceErrorMessage ,
420+ err .Error ())
421+ }
422+ return service , err
423+ }
424+
400425func (r * OpenStackDataPlaneDeploymentReconciler ) setHashes (
401426 ctx context.Context ,
402427 helper * helper.Helper ,
0 commit comments