Skip to content

Commit

Permalink
Merge pull request #22 from NetApp/latestStatusUpdate
Browse files Browse the repository at this point in the history
fetch astra connector before status update and avoid reconcile for status updates
  • Loading branch information
Brian Mason authored Apr 3, 2023
2 parents 323f98a + f3113b9 commit 54dcfb8
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 12 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ kubectl apply -f config/samples/astraconnector_v1.yaml -n astra-connector
```
#### Check the AstraConnector status
```
» kubectl get astraconnector astra-connector -n astra-connector
NAME REGISTERED ASTRACONNECTORID STATUS
astra-connector false Updating Deployment astra-connector/echo-client
```
Expand Down
20 changes: 8 additions & 12 deletions controllers/astraconnector_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/predicate"

k8serrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"
Expand Down Expand Up @@ -280,12 +281,7 @@ func (r *AstraConnectorReconciler) Reconcile(ctx context.Context, req ctrl.Reque
natssyncClientStatus.Status = UnregisterNSClient
}

err = r.updateAstraConnectorStatus(ctx, astraConnector, natssyncClientStatus)
if err != nil {
log.Error(err, "Error updating natsync-client status")
return ctrl.Result{}, err
}

_ = r.updateAstraConnectorStatus(ctx, astraConnector, natssyncClientStatus)
return ctrl.Result{}, nil
}

Expand All @@ -303,15 +299,14 @@ func (r *AstraConnectorReconciler) updateAstraConnectorStatus(ctx context.Contex
}
podNames := getPodNames(podList.Items)

err := r.Get(ctx, types.NamespacedName{Name: astraConnector.Name, Namespace: astraConnector.Namespace}, astraConnector)
if err != nil {
return err
}

// Update status.Nodes if needed
if !reflect.DeepEqual(podNames, astraConnector.Status.Nodes) {
log.Info("Updating the pod status")
astraConnector.Status.Nodes = podNames
err := r.Status().Update(ctx, astraConnector)
if err != nil {
log.Error(err, "Failed to update astraConnector status")
return err
}
}

if !reflect.DeepEqual(natssyncClientStatus, astraConnector.Status.NatssyncClient) {
Expand All @@ -338,6 +333,7 @@ func (r *AstraConnectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
Owns(&rbacv1.Role{}).
Owns(&rbacv1.RoleBinding{}).
WithOptions(controller.Options{MaxConcurrentReconciles: 1}).
WithEventFilter(predicate.GenerationChangedPredicate{}). // Avoid reconcile for status updates
Complete(r)
}

Expand Down

0 comments on commit 54dcfb8

Please sign in to comment.