From 9ce51b8dffa283d4f97faeab25751b0814407214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20=C3=81lvarez?= Date: Fri, 24 May 2024 16:25:31 +0200 Subject: [PATCH] Fleet example changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Iván Álvarez --- examples/fleet/main.go | 16 ++++++++++------ pkg/manager/internal.go | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/examples/fleet/main.go b/examples/fleet/main.go index 4dd366cfd8..195cedc718 100644 --- a/examples/fleet/main.go +++ b/examples/fleet/main.go @@ -68,8 +68,9 @@ func main() { // Setup a Manager, note that this not yet engages clusters, only makes them available. entryLog.Info("Setting up manager") provider := &KindClusterProvider{ - log: log.Log.WithName("kind-cluster-provider"), - clusters: map[string]cluster.Cluster{}, + log: log.Log.WithName("kind-cluster-provider"), + clusters: map[string]cluster.Cluster{}, + cancelFns: map[string]context.CancelFunc{}, } mgr, err := manager.New( cfg, @@ -85,18 +86,18 @@ func main() { func(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { log := log.FromContext(ctx) - cluster, err := mgr.GetCluster(ctx, req.ClusterName) + cl, err := mgr.GetCluster(ctx, req.ClusterName) if err != nil { return reconcile.Result{}, err } - client := cluster.GetClient() + client := cl.GetClient() // Retrieve the pod from the cluster. pod := &corev1.Pod{} if err := client.Get(ctx, req.NamespacedName, pod); err != nil { return reconcile.Result{}, err } - log.Info("Reconciling pod", "name", pod.Name, "uuid", pod.UID) + log.Info(fmt.Sprintf("Retrieved pod %s:>%s/%s", cl.Name(), pod.Namespace, pod.Name)) // Print any annotations that start with fleet. for k, v := range pod.Labels { @@ -185,7 +186,10 @@ func (k *KindClusterProvider) Run(ctx context.Context, mgr manager.Manager) erro k.log.Info("failed to create rest config", "error", err) return false, nil // keep going } - cl, err := cluster.New(cfg, k.Options...) + // Copy provider options and append the cluster name + clOptions := append(k.Options, cluster.WithName(clusterName)) + + cl, err := cluster.New(cfg, clOptions...) if err != nil { k.log.Info("failed to create cluster", "error", err) return false, nil // keep going diff --git a/pkg/manager/internal.go b/pkg/manager/internal.go index 40e5172f9e..51cd6ca1d7 100644 --- a/pkg/manager/internal.go +++ b/pkg/manager/internal.go @@ -619,9 +619,9 @@ func (cm *controllerManager) Engage(ctx context.Context, cl cluster.Cluster) err // be reentrant via noop cm.engagedClustersLock.RLock() if _, ok := cm.engagedClusters[cl.Name()]; ok { - cm.engagedClustersLock.RUnlock() return nil } + cm.engagedClustersLock.RUnlock() // add early because any engaged runnable could access it cm.engagedClustersLock.Lock()