@@ -405,7 +405,6 @@ func (r *NeutronAPIReconciler) reconcileInit(
405405 helper * helper.Helper ,
406406 serviceLabels map [string ]string ,
407407 serviceAnnotations map [string ]string ,
408- ospSecret * corev1.Secret ,
409408 secretVars map [string ]env.Setter ,
410409) (ctrl.Result , error ) {
411410 Log := r .GetLogger (ctx )
@@ -424,7 +423,7 @@ func (r *NeutronAPIReconciler) reconcileInit(
424423 //
425424 // create Secret required for neutronapi and dbsync input. It contains minimal neutron config required
426425 // to get the service up, user can add additional files to be added to the service.
427- err = r .generateServiceSecrets (ctx , helper , instance , ospSecret , & secretVars , db )
426+ err = r .generateServiceSecrets (ctx , helper , instance , & secretVars , db )
428427 if err != nil {
429428 instance .Status .Conditions .Set (condition .FalseCondition (
430429 condition .ServiceConfigReadyCondition ,
@@ -822,26 +821,31 @@ func (r *NeutronAPIReconciler) reconcileNormal(ctx context.Context, instance *ne
822821 // check for required TransportURL secret holding transport URL string
823822 //
824823
825- transportURLSecret , hash , err := secret .GetSecret (ctx , helper , instance .Status .TransportURLSecret , instance .Namespace )
824+ transportURLSecretHash , result , err := secret .VerifySecret (
825+ ctx ,
826+ types.NamespacedName {Namespace : instance .Namespace , Name : instance .Status .TransportURLSecret },
827+ []string {"transport_url" },
828+ helper .GetClient (),
829+ time .Duration (10 )* time .Second ,
830+ )
826831 if err != nil {
827- if k8s_errors .IsNotFound (err ) {
828- Log .Info (fmt .Sprintf ("TransportURL secret %s not found" , instance .Status .TransportURLSecret ))
829- instance .Status .Conditions .Set (condition .FalseCondition (
830- condition .InputReadyCondition ,
831- condition .RequestedReason ,
832- condition .SeverityInfo ,
833- condition .InputReadyWaitingMessage ))
834- return ctrl.Result {RequeueAfter : time .Duration (10 ) * time .Second }, nil
835- }
836832 instance .Status .Conditions .Set (condition .FalseCondition (
837833 condition .InputReadyCondition ,
838834 condition .ErrorReason ,
839835 condition .SeverityWarning ,
840836 condition .InputReadyErrorMessage ,
841837 err .Error ()))
842- return ctrl.Result {}, err
838+ return result , err
839+ } else if (result != ctrl.Result {}) {
840+ instance .Status .Conditions .Set (condition .FalseCondition (
841+ condition .InputReadyCondition ,
842+ condition .RequestedReason ,
843+ condition .SeverityInfo ,
844+ condition .InputReadyWaitingMessage ))
845+ return result , err
843846 }
844- secretVars [transportURLSecret .Name ] = env .SetValue (hash )
847+
848+ secretVars [instance .Status .TransportURLSecret ] = env .SetValue (transportURLSecretHash )
845849
846850 // run check TransportURL secret - end
847851
@@ -852,26 +856,32 @@ func (r *NeutronAPIReconciler) reconcileNormal(ctx context.Context, instance *ne
852856 //
853857 // check for required OpenStack secret holding passwords for service/admin user and add hash to the vars map,
854858 //
855- ospSecret , hash , err := secret .GetSecret (ctx , helper , instance .Spec .Secret , instance .Namespace )
859+ ospSecretHash , result , err := secret .VerifySecret (
860+ ctx ,
861+ types.NamespacedName {Namespace : instance .Namespace , Name : instance .Spec .Secret },
862+ []string {instance .Spec .PasswordSelectors .Service },
863+ helper .GetClient (),
864+ time .Duration (10 )* time .Second ,
865+ )
866+
856867 if err != nil {
857- if k8s_errors .IsNotFound (err ) {
858- Log .Info (fmt .Sprintf ("OpenStack secret %s not found" , instance .Spec .Secret ))
859- instance .Status .Conditions .Set (condition .FalseCondition (
860- condition .InputReadyCondition ,
861- condition .RequestedReason ,
862- condition .SeverityInfo ,
863- condition .InputReadyWaitingMessage ))
864- return ctrl.Result {RequeueAfter : time .Duration (10 ) * time .Second }, nil
865- }
866868 instance .Status .Conditions .Set (condition .FalseCondition (
867869 condition .InputReadyCondition ,
868870 condition .ErrorReason ,
869871 condition .SeverityWarning ,
870872 condition .InputReadyErrorMessage ,
871873 err .Error ()))
872- return ctrl.Result {}, err
874+ return result , err
875+ } else if (result != ctrl.Result {}) {
876+ instance .Status .Conditions .Set (condition .FalseCondition (
877+ condition .InputReadyCondition ,
878+ condition .RequestedReason ,
879+ condition .SeverityInfo ,
880+ condition .InputReadyWaitingMessage ))
881+ return result , err
873882 }
874- secretVars [ospSecret .Name ] = env .SetValue (hash )
883+
884+ secretVars [instance .Spec .Secret ] = env .SetValue (ospSecretHash )
875885
876886 instance .Status .Conditions .MarkTrue (condition .InputReadyCondition , condition .InputReadyMessage )
877887 // run check OpenStack secret - end
@@ -953,7 +963,7 @@ func (r *NeutronAPIReconciler) reconcileNormal(ctx context.Context, instance *ne
953963 }
954964
955965 // Handle service init
956- ctrlResult , err := r .reconcileInit (ctx , instance , helper , serviceLabels , serviceAnnotations , ospSecret , secretVars )
966+ ctrlResult , err := r .reconcileInit (ctx , instance , helper , serviceLabels , serviceAnnotations , secretVars )
957967 if err != nil {
958968 return ctrlResult , err
959969 } else if (ctrlResult != ctrl.Result {}) {
@@ -1418,7 +1428,6 @@ func (r *NeutronAPIReconciler) generateServiceSecrets(
14181428 ctx context.Context ,
14191429 h * helper.Helper ,
14201430 instance * neutronv1beta1.NeutronAPI ,
1421- ospSecret * corev1.Secret ,
14221431 envVars * map [string ]env.Setter ,
14231432 db * mariadbv1.Database ,
14241433) error {
@@ -1481,6 +1490,11 @@ func (r *NeutronAPIReconciler) generateServiceSecrets(
14811490 return err
14821491 }
14831492
1493+ ospSecret , _ , err := secret .GetSecret (ctx , h , instance .Spec .Secret , instance .Namespace )
1494+ if err != nil {
1495+ return err
1496+ }
1497+
14841498 templateParameters := make (map [string ]interface {})
14851499 templateParameters ["ServiceUser" ] = instance .Spec .ServiceUser
14861500 templateParameters ["KeystoneInternalURL" ] = keystoneInternalURL
0 commit comments