Skip to content

Commit 00469fa

Browse files
authored
Merge pull request #8894 from sbueringer/pr-use-restconfig-from-cct-consistently
🌱 Use rest config from ClusterCacheTracker consistently
2 parents a362a02 + a37f57d commit 00469fa

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

controlplane/kubeadm/internal/cluster.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525

2626
"github.com/pkg/errors"
2727
corev1 "k8s.io/api/core/v1"
28+
"k8s.io/client-go/rest"
2829
"sigs.k8s.io/controller-runtime/pkg/client"
2930

3031
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -102,10 +103,11 @@ func (m *Management) GetMachinePoolsForCluster(ctx context.Context, cluster *clu
102103
func (m *Management) GetWorkloadCluster(ctx context.Context, clusterKey client.ObjectKey) (WorkloadCluster, error) {
103104
// TODO(chuckha): Inject this dependency.
104105
// TODO(chuckha): memoize this function. The workload client only exists as long as a reconciliation loop.
105-
restConfig, err := remote.RESTConfig(ctx, KubeadmControlPlaneControllerName, m.Client, clusterKey)
106+
restConfig, err := m.Tracker.GetRESTConfig(ctx, clusterKey)
106107
if err != nil {
107108
return nil, err
108109
}
110+
restConfig = rest.CopyConfig(restConfig)
109111
restConfig.Timeout = 30 * time.Second
110112

111113
if m.Tracker == nil {

controlplane/kubeadm/internal/cluster_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,6 @@ func TestGetWorkloadCluster(t *testing.T) {
105105
delete(emptyKeyEtcdSecret.Data, secret.TLSKeyDataName)
106106
badCrtEtcdSecret := etcdSecret.DeepCopy()
107107
badCrtEtcdSecret.Data[secret.TLSCrtDataName] = []byte("bad cert")
108-
tracker, err := remote.NewClusterCacheTracker(
109-
env.Manager,
110-
remote.ClusterCacheTrackerOptions{
111-
Log: &log.Log,
112-
},
113-
)
114-
g.Expect(err).ToNot(HaveOccurred())
115108

116109
// Create kubeconfig secret
117110
// Store the envtest config as the contents of the kubeconfig secret.
@@ -188,10 +181,20 @@ func TestGetWorkloadCluster(t *testing.T) {
188181
for _, o := range tt.objs {
189182
g.Expect(env.Client.Create(ctx, o)).To(Succeed())
190183
defer func(do client.Object) {
191-
g.Expect(env.Cleanup(ctx, do)).To(Succeed())
184+
g.Expect(env.CleanupAndWait(ctx, do)).To(Succeed())
192185
}(o)
193186
}
194187

188+
// We have to create a new ClusterCacheTracker for every test case otherwise
189+
// it could still have a rest config from a previous run cached.
190+
tracker, err := remote.NewClusterCacheTracker(
191+
env.Manager,
192+
remote.ClusterCacheTrackerOptions{
193+
Log: &log.Log,
194+
},
195+
)
196+
g.Expect(err).ToNot(HaveOccurred())
197+
195198
// Note: The API reader is intentionally used instead of the regular (cached) client
196199
// to avoid test failures when the local cache isn't able to catch up in time.
197200
m := Management{

internal/controllers/machine/machine_controller.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ import (
5656
"sigs.k8s.io/cluster-api/util/predicates"
5757
)
5858

59-
const (
60-
// controllerName defines the controller used when creating clients.
61-
controllerName = "machine-controller"
62-
)
63-
6459
var (
6560
errNilNodeRef = errors.New("noderef is nil")
6661
errLastControlPlaneNode = errors.New("last control plane member")
@@ -579,7 +574,7 @@ func (r *Reconciler) isDeleteNodeAllowed(ctx context.Context, cluster *clusterv1
579574
func (r *Reconciler) drainNode(ctx context.Context, cluster *clusterv1.Cluster, nodeName string) (ctrl.Result, error) {
580575
log := ctrl.LoggerFrom(ctx, "Node", klog.KRef("", nodeName))
581576

582-
restConfig, err := remote.RESTConfig(ctx, controllerName, r.Client, util.ObjectKey(cluster))
577+
restConfig, err := r.Tracker.GetRESTConfig(ctx, util.ObjectKey(cluster))
583578
if err != nil {
584579
log.Error(err, "Error creating a remote client while deleting Machine, won't retry")
585580
return ctrl.Result{}, nil

0 commit comments

Comments
 (0)