Skip to content

Commit df96993

Browse files
committed
Dedicated listNodeSets logic in Deployment controller
Signed-off-by: Brendan Shephard <bshephar@redhat.com>
1 parent 608d5a8 commit df96993

File tree

1 file changed

+41
-38
lines changed

1 file changed

+41
-38
lines changed

controllers/dataplane/openstackdataplanedeployment_controller.go

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -149,44 +149,12 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
149149
}()
150150

151151
// Ensure NodeSets
152-
nodeSets := dataplanev1.OpenStackDataPlaneNodeSetList{}
153-
for _, nodeSet := range instance.Spec.NodeSets {
154-
155-
// Fetch the OpenStackDataPlaneNodeSet instance
156-
nodeSetInstance := &dataplanev1.OpenStackDataPlaneNodeSet{}
157-
err := r.Client.Get(
158-
ctx,
159-
types.NamespacedName{
160-
Namespace: instance.GetNamespace(),
161-
Name: nodeSet,
162-
},
163-
nodeSetInstance)
164-
if err != nil {
165-
// NodeSet not found, force a requeue
166-
if k8s_errors.IsNotFound(err) {
167-
Log.Info("NodeSet not found", "NodeSet", nodeSet)
168-
return ctrl.Result{RequeueAfter: time.Second * time.Duration(instance.Spec.DeploymentRequeueTime)}, nil
169-
}
170-
instance.Status.Conditions.MarkFalse(
171-
dataplanev1.SetupReadyCondition,
172-
condition.ErrorReason,
173-
condition.SeverityError,
174-
dataplanev1.DataPlaneNodeSetErrorMessage,
175-
err.Error())
176-
// Error reading the object - requeue the request.
177-
return ctrl.Result{}, err
178-
}
179-
if err = nodeSetInstance.Spec.ValidateTLS(instance.GetNamespace(), r.Client, ctx); err != nil {
180-
Log.Info("error while comparing TLS settings of nodeset %s with control plane: %w", nodeSet, err)
181-
instance.Status.Conditions.MarkFalse(
182-
dataplanev1.SetupReadyCondition,
183-
condition.ErrorReason,
184-
condition.SeverityError,
185-
dataplanev1.DataPlaneNodeSetErrorMessage,
186-
err.Error())
187-
return ctrl.Result{}, err
152+
nodeSets, err := r.listNodeSets(ctx, &Log, instance)
153+
if err != nil {
154+
if k8s_errors.IsNotFound(err) {
155+
return ctrl.Result{RequeueAfter: time.Second * time.Duration(instance.Spec.DeploymentRequeueTime)}, nil
188156
}
189-
nodeSets.Items = append(nodeSets.Items, *nodeSetInstance)
157+
return ctrl.Result{}, err
190158
}
191159

192160
// Check that all NodeSets are ready and get TLS certs
@@ -386,7 +354,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
386354
if version != nil {
387355
instance.Status.DeployedVersion = version.Spec.TargetVersion
388356
}
389-
err = r.setHashes(ctx, helper, instance, nodeSets)
357+
err = r.setHashes(ctx, helper, instance, *nodeSets)
390358
if err != nil {
391359
Log.Error(err, "Error setting service hashes")
392360
}
@@ -494,3 +462,38 @@ func (r *OpenStackDataPlaneDeploymentReconciler) SetupWithManager(mgr ctrl.Manag
494462
handler.EnqueueRequestsFromMapFunc(certFn)).
495463
Complete(r)
496464
}
465+
466+
func (r *OpenStackDataPlaneDeploymentReconciler) listNodeSets(ctx context.Context, Log *logr.Logger, instance *dataplanev1.OpenStackDataPlaneDeployment) (*dataplanev1.OpenStackDataPlaneNodeSetList, error) {
467+
468+
var nodeSets = dataplanev1.OpenStackDataPlaneNodeSetList{}
469+
var err error
470+
471+
for _, nodeSet := range instance.Spec.NodeSets {
472+
473+
// Fetch the OpenStackDataPlaneNodeSet instance
474+
nodeSetInstance := &dataplanev1.OpenStackDataPlaneNodeSet{}
475+
err := r.Client.Get(
476+
ctx,
477+
types.NamespacedName{
478+
Namespace: instance.GetNamespace(),
479+
Name: nodeSet,
480+
},
481+
nodeSetInstance)
482+
if err != nil {
483+
Log.Info("NodeSet not found", "NodeSet", nodeSet)
484+
return &nodeSets, err
485+
}
486+
if err = nodeSetInstance.Spec.ValidateTLS(instance.GetNamespace(), r.Client, ctx); err != nil {
487+
Log.Info("error while comparing TLS settings of nodeset %s with control plane: %w", nodeSet, err)
488+
instance.Status.Conditions.MarkFalse(
489+
dataplanev1.SetupReadyCondition,
490+
condition.ErrorReason,
491+
condition.SeverityError,
492+
dataplanev1.DataPlaneNodeSetErrorMessage,
493+
err.Error())
494+
return &nodeSets, err
495+
}
496+
nodeSets.Items = append(nodeSets.Items, *nodeSetInstance)
497+
}
498+
return &nodeSets, err
499+
}

0 commit comments

Comments
 (0)