Skip to content

Commit

Permalink
Replace deprecated fake.NewFakeClient with fake.ClientBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
thisisnotashwin committed Mar 25, 2021
1 parent ac1c567 commit 53423ae
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 55 deletions.
2 changes: 1 addition & 1 deletion api/v1alpha1/proxydefaults_webhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func TestValidateProxyDefault(t *testing.T) {
require.NoError(t, err)
s := runtime.NewScheme()
s.AddKnownTypes(GroupVersion, &ProxyDefaults{}, &ProxyDefaultsList{})
client := fake.NewFakeClientWithScheme(s, c.existingResources...)
client := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.existingResources...).Build()
decoder, err := admission.NewDecoder(s)
require.NoError(t, err)

Expand Down
6 changes: 3 additions & 3 deletions api/v1alpha1/serviceintentions_webhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ func TestHandle_ServiceIntentions_Create(t *testing.T) {
require.NoError(t, err)
s := runtime.NewScheme()
s.AddKnownTypes(GroupVersion, &ServiceIntentions{}, &ServiceIntentionsList{})
client := fake.NewFakeClientWithScheme(s, c.existingResources...)
client := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.existingResources...).Build()
decoder, err := admission.NewDecoder(s)
require.NoError(t, err)

Expand Down Expand Up @@ -430,7 +430,7 @@ func TestHandle_ServiceIntentions_Update(t *testing.T) {
require.NoError(t, err)
s := runtime.NewScheme()
s.AddKnownTypes(GroupVersion, &ServiceIntentions{}, &ServiceIntentionsList{})
client := fake.NewFakeClientWithScheme(s, c.existingResources...)
client := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.existingResources...).Build()
decoder, err := admission.NewDecoder(s)
require.NoError(t, err)

Expand Down Expand Up @@ -589,7 +589,7 @@ func TestHandle_ServiceIntentions_Patches(t *testing.T) {
require.NoError(t, err)
s := runtime.NewScheme()
s.AddKnownTypes(GroupVersion, &ServiceIntentions{}, &ServiceIntentionsList{})
client := fake.NewFakeClientWithScheme(s)
client := fake.NewClientBuilder().WithScheme(s).Build()
decoder, err := admission.NewDecoder(s)
require.NoError(t, err)

Expand Down
13 changes: 4 additions & 9 deletions controller/configentry_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,8 @@ type ConfigEntryController struct {
// CRD-specific controller should pass themselves in as updater since we
// need to call back into their own update methods to ensure they update their
// internal state.
func (r *ConfigEntryController) ReconcileEntry(
crdCtrl Controller,
ctx context.Context,
req ctrl.Request,
configEntry common.ConfigEntryResource) (ctrl.Result, error) {
func (r *ConfigEntryController) ReconcileEntry(ctx context.Context, crdCtrl Controller, req ctrl.Request, configEntry common.ConfigEntryResource) (ctrl.Result, error) {
logger := crdCtrl.Logger(req.NamespacedName)

err := crdCtrl.Get(ctx, req.NamespacedName, configEntry)
if k8serr.IsNotFound(err) {
return ctrl.Result{}, client.IgnoreNotFound(err)
Expand All @@ -100,19 +95,19 @@ func (r *ConfigEntryController) ReconcileEntry(

consulEntry := configEntry.ToConsul(r.DatacenterName)

if configEntry.GetObjectMeta().DeletionTimestamp.IsZero() {
if configEntry.GetDeletionTimestamp().IsZero() {
// The object is not being deleted, so if it does not have our finalizer,
// then let's add the finalizer and update the object. This is equivalent
// registering our finalizer.
if !containsString(configEntry.GetObjectMeta().Finalizers, FinalizerName) {
if !containsString(configEntry.GetFinalizers(), FinalizerName) {
configEntry.AddFinalizer(FinalizerName)
if err := r.syncUnknown(ctx, crdCtrl, configEntry); err != nil {
return ctrl.Result{}, err
}
}
} else {
// The object is being deleted
if containsString(configEntry.GetObjectMeta().Finalizers, FinalizerName) {
if containsString(configEntry.GetFinalizers(), FinalizerName) {
logger.Info("deletion event")
// Check to see if consul has config entry with the same name
entry, _, err := r.ConsulClient.ConfigEntries().Get(configEntry.ConsulKind(), configEntry.ConsulName(), &capi.QueryOptions{
Expand Down
6 changes: 3 additions & 3 deletions controller/configentry_controller_ent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ func TestConfigEntryController_createsConfigEntry_consulNamespaces(tt *testing.T
})
req.NoError(err)

fakeClient := fake.NewFakeClientWithScheme(s, in.KubeResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(in.KubeResource).Build()

r := in.GetController(
fakeClient,
Expand Down Expand Up @@ -468,7 +468,7 @@ func TestConfigEntryController_updatesConfigEntry_consulNamespaces(tt *testing.T
})
req.NoError(err)

fakeClient := fake.NewFakeClientWithScheme(s, in.KubeResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(in.KubeResource).Build()

r := in.GetControllerFunc(
fakeClient,
Expand Down Expand Up @@ -721,7 +721,7 @@ func TestConfigEntryController_deletesConfigEntry_consulNamespaces(tt *testing.T
})
req.NoError(err)

fakeClient := fake.NewFakeClientWithScheme(s, in.KubeResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(in.KubeResource).Build()

r := in.GetControllerFunc(
fakeClient,
Expand Down
62 changes: 31 additions & 31 deletions controller/configentry_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ func TestConfigEntryControllers_createsConfigEntry(t *testing.T) {

s := runtime.NewScheme()
s.AddKnownTypes(v1alpha1.GroupVersion, c.configEntryResource)
client := fake.NewFakeClientWithScheme(s, c.configEntryResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.configEntryResource).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand All @@ -408,7 +408,7 @@ func TestConfigEntryControllers_createsConfigEntry(t *testing.T) {
req.True(written)
}

r := c.reconciler(client, consulClient, logrtest.TestLogger{T: t})
r := c.reconciler(fakeClient, consulClient, logrtest.TestLogger{T: t})
namespacedName := types.NamespacedName{
Namespace: kubeNS,
Name: c.configEntryResource.KubernetesName(),
Expand All @@ -425,7 +425,7 @@ func TestConfigEntryControllers_createsConfigEntry(t *testing.T) {
c.compare(t, cfg)

// Check that the status is "synced".
err = client.Get(ctx, namespacedName, c.configEntryResource)
err = fakeClient.Get(ctx, namespacedName, c.configEntryResource)
req.NoError(err)
req.Equal(corev1.ConditionTrue, c.configEntryResource.SyncedConditionStatus())

Expand Down Expand Up @@ -830,7 +830,7 @@ func TestConfigEntryControllers_updatesConfigEntry(t *testing.T) {

s := runtime.NewScheme()
s.AddKnownTypes(v1alpha1.GroupVersion, c.configEntryResource)
client := fake.NewFakeClientWithScheme(s, c.configEntryResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.configEntryResource).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand Down Expand Up @@ -864,14 +864,14 @@ func TestConfigEntryControllers_updatesConfigEntry(t *testing.T) {
Name: c.configEntryResource.KubernetesName(),
}
// First get it so we have the latest revision number.
err = client.Get(ctx, namespacedName, c.configEntryResource)
err = fakeClient.Get(ctx, namespacedName, c.configEntryResource)
req.NoError(err)

// Update the entry in Kube and run reconcile.
c.updateF(c.configEntryResource)
err := client.Update(ctx, c.configEntryResource)
err := fakeClient.Update(ctx, c.configEntryResource)
req.NoError(err)
r := c.reconciler(client, consulClient, logrtest.TestLogger{T: t})
r := c.reconciler(fakeClient, consulClient, logrtest.TestLogger{T: t})
resp, err := r.Reconcile(ctx, ctrl.Request{
NamespacedName: namespacedName,
})
Expand Down Expand Up @@ -1200,7 +1200,7 @@ func TestConfigEntryControllers_deletesConfigEntry(t *testing.T) {

s := runtime.NewScheme()
s.AddKnownTypes(v1alpha1.GroupVersion, c.configEntryResourceWithDeletion)
client := fake.NewFakeClientWithScheme(s, c.configEntryResourceWithDeletion)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(c.configEntryResourceWithDeletion).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand Down Expand Up @@ -1233,7 +1233,7 @@ func TestConfigEntryControllers_deletesConfigEntry(t *testing.T) {
Namespace: kubeNS,
Name: c.configEntryResourceWithDeletion.KubernetesName(),
}
r := c.reconciler(client, consulClient, logrtest.TestLogger{T: t})
r := c.reconciler(fakeClient, consulClient, logrtest.TestLogger{T: t})
resp, err := r.Reconcile(context.Background(), ctrl.Request{
NamespacedName: namespacedName,
})
Expand Down Expand Up @@ -1267,7 +1267,7 @@ func TestConfigEntryControllers_errorUpdatesSyncStatus(t *testing.T) {

s := runtime.NewScheme()
s.AddKnownTypes(v1alpha1.GroupVersion, svcDefaults)
client := fake.NewFakeClientWithScheme(s, svcDefaults)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(svcDefaults).Build()

// Construct a Consul client that will error by giving it
// an unresolvable address.
Expand All @@ -1276,7 +1276,7 @@ func TestConfigEntryControllers_errorUpdatesSyncStatus(t *testing.T) {
})
req.NoError(err)
reconciler := &ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logrtest.TestLogger{T: t},
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand All @@ -1299,7 +1299,7 @@ func TestConfigEntryControllers_errorUpdatesSyncStatus(t *testing.T) {
req.False(resp.Requeue)

// Check that the status is "synced=false".
err = client.Get(ctx, namespacedName, svcDefaults)
err = fakeClient.Get(ctx, namespacedName, svcDefaults)
req.NoError(err)
status, reason, errMsg := svcDefaults.SyncedCondition()
req.Equal(corev1.ConditionFalse, status)
Expand Down Expand Up @@ -1335,7 +1335,7 @@ func TestConfigEntryControllers_setsSyncedToTrue(t *testing.T) {
s.AddKnownTypes(v1alpha1.GroupVersion, svcDefaults)

// The config entry exists in kube but its status will be nil.
client := fake.NewFakeClientWithScheme(s, svcDefaults)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(svcDefaults).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand All @@ -1347,7 +1347,7 @@ func TestConfigEntryControllers_setsSyncedToTrue(t *testing.T) {
})
req.NoError(err)
reconciler := &ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logrtest.TestLogger{T: t},
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand All @@ -1371,7 +1371,7 @@ func TestConfigEntryControllers_setsSyncedToTrue(t *testing.T) {
req.False(resp.Requeue)

// Check that the status is now "synced".
err = client.Get(ctx, namespacedName, svcDefaults)
err = fakeClient.Get(ctx, namespacedName, svcDefaults)
req.NoError(err)
req.Equal(corev1.ConditionTrue, svcDefaults.SyncedConditionStatus())
}
Expand Down Expand Up @@ -1412,7 +1412,7 @@ func TestConfigEntryControllers_doesNotCreateUnownedConfigEntry(t *testing.T) {
},
}
s.AddKnownTypes(v1alpha1.GroupVersion, svcDefaults)
client := fake.NewFakeClientWithScheme(s, svcDefaults)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(svcDefaults).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand All @@ -1439,12 +1439,12 @@ func TestConfigEntryControllers_doesNotCreateUnownedConfigEntry(t *testing.T) {
Name: svcDefaults.KubernetesName(),
}
// First get it so we have the latest revision number.
err = client.Get(ctx, namespacedName, svcDefaults)
err = fakeClient.Get(ctx, namespacedName, svcDefaults)
req.NoError(err)

// Attempt to create the entry in Kube and run reconcile.
reconciler := ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logrtest.TestLogger{T: t},
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand All @@ -1463,7 +1463,7 @@ func TestConfigEntryControllers_doesNotCreateUnownedConfigEntry(t *testing.T) {
req.Equal(cfg.GetMeta()[common.DatacenterKey], c.datacenterAnnotation)

// Check that the status is "synced=false".
err = client.Get(ctx, namespacedName, svcDefaults)
err = fakeClient.Get(ctx, namespacedName, svcDefaults)
req.NoError(err)
status, reason, errMsg := svcDefaults.SyncedCondition()
req.Equal(corev1.ConditionFalse, status)
Expand Down Expand Up @@ -1501,7 +1501,7 @@ func TestConfigEntryControllers_doesNotDeleteUnownedConfig(t *testing.T) {
},
}
s.AddKnownTypes(v1alpha1.GroupVersion, svcDefaultsWithDeletion)
client := fake.NewFakeClientWithScheme(s, svcDefaultsWithDeletion)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(svcDefaultsWithDeletion).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
req.NoError(err)
Expand All @@ -1513,7 +1513,7 @@ func TestConfigEntryControllers_doesNotDeleteUnownedConfig(t *testing.T) {
})
req.NoError(err)
reconciler := &ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logrtest.TestLogger{T: t},
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand Down Expand Up @@ -1549,7 +1549,7 @@ func TestConfigEntryControllers_doesNotDeleteUnownedConfig(t *testing.T) {

// Check that the resource is deleted from cluster.
svcDefault := &v1alpha1.ServiceDefaults{}
_ = client.Get(ctx, namespacedName, svcDefault)
_ = fakeClient.Get(ctx, namespacedName, svcDefault)
require.Empty(t, svcDefault.Finalizers())
}
})
Expand Down Expand Up @@ -1588,7 +1588,7 @@ func TestConfigEntryControllers_updatesStatusWhenDeleteFails(t *testing.T) {
},
}

client := fake.NewFakeClientWithScheme(s, defaults, splitter)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(defaults, splitter).Build()

consul, err := testutil.NewTestServerConfigT(t, nil)
require.NoError(t, err)
Expand All @@ -1603,15 +1603,15 @@ func TestConfigEntryControllers_updatesStatusWhenDeleteFails(t *testing.T) {
logger := logrtest.TestLogger{T: t}

svcDefaultsReconciler := ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logger,
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
DatacenterName: datacenterName,
},
}
svcSplitterReconciler := ServiceSplitterController{
Client: client,
Client: fakeClient,
Log: logger,
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand All @@ -1638,20 +1638,20 @@ func TestConfigEntryControllers_updatesStatusWhenDeleteFails(t *testing.T) {
require.NoError(t, err)
require.False(t, resp.Requeue)

err = client.Get(ctx, defaultsNamespacedName, defaults)
err = fakeClient.Get(ctx, defaultsNamespacedName, defaults)
require.NoError(t, err)

// Update service-defaults with deletion timestamp so that it attempts deletion on reconcile.
defaults.ObjectMeta.DeletionTimestamp = &metav1.Time{Time: time.Now()}
err = client.Update(ctx, defaults)
err = fakeClient.Update(ctx, defaults)
require.NoError(t, err)

// Reconcile should fail as the service-splitter still required the service-defaults causing the delete operation on Consul to fail.
resp, err = svcDefaultsReconciler.Reconcile(ctx, ctrl.Request{NamespacedName: defaultsNamespacedName})
require.EqualError(t, err, "deleting config entry from consul: Unexpected response code: 500 (discovery chain \"service\" uses a protocol \"tcp\" that does not permit advanced routing or splitting behavior)")
require.False(t, resp.Requeue)

err = client.Get(ctx, defaultsNamespacedName, defaults)
err = fakeClient.Get(ctx, defaultsNamespacedName, defaults)
require.NoError(t, err)

// Ensure the status of the resource is updated to display failure reason.
Expand Down Expand Up @@ -1725,7 +1725,7 @@ func TestConfigEntryController_Migration(t *testing.T) {
s := runtime.NewScheme()
s.AddKnownTypes(v1alpha1.GroupVersion, &v1alpha1.ServiceDefaults{})

client := fake.NewFakeClientWithScheme(s, &c.KubeResource)
fakeClient := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(&c.KubeResource).Build()
consul, err := testutil.NewTestServerConfigT(t, nil)
require.NoError(t, err)
defer consul.Stop()
Expand All @@ -1744,7 +1744,7 @@ func TestConfigEntryController_Migration(t *testing.T) {
// Set up the reconciler.
logger := logrtest.TestLogger{T: t}
svcDefaultsReconciler := ServiceDefaultsController{
Client: client,
Client: fakeClient,
Log: logger,
ConfigEntryController: &ConfigEntryController{
ConsulClient: consulClient,
Expand All @@ -1768,7 +1768,7 @@ func TestConfigEntryController_Migration(t *testing.T) {
}

entryAfterReconcile := &v1alpha1.ServiceDefaults{}
err = client.Get(ctx, defaultsNamespacedName, entryAfterReconcile)
err = fakeClient.Get(ctx, defaultsNamespacedName, entryAfterReconcile)
require.NoError(t, err)

syncCondition := entryAfterReconcile.GetCondition(v1alpha1.ConditionSynced)
Expand Down
2 changes: 1 addition & 1 deletion controller/ingressgateway_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type IngressGatewayController struct {
// +kubebuilder:rbac:groups=consul.hashicorp.com,resources=ingressgateways/status,verbs=get;update;patch

func (r *IngressGatewayController) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
return r.ConfigEntryController.ReconcileEntry(r, ctx, req, &consulv1alpha1.IngressGateway{})
return r.ConfigEntryController.ReconcileEntry(ctx, r, req, &consulv1alpha1.IngressGateway{})
}

func (r *IngressGatewayController) Logger(name types.NamespacedName) logr.Logger {
Expand Down
2 changes: 1 addition & 1 deletion controller/proxydefaults_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type ProxyDefaultsController struct {
// +kubebuilder:rbac:groups=consul.hashicorp.com,resources=proxydefaults/status,verbs=get;update;patch

func (r *ProxyDefaultsController) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
return r.ConfigEntryController.ReconcileEntry(r, ctx, req, &consulv1alpha1.ProxyDefaults{})
return r.ConfigEntryController.ReconcileEntry(ctx, r, req, &consulv1alpha1.ProxyDefaults{})
}

func (r *ProxyDefaultsController) Logger(name types.NamespacedName) logr.Logger {
Expand Down
2 changes: 1 addition & 1 deletion controller/servicedefaults_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type ServiceDefaultsController struct {
// +kubebuilder:rbac:groups=consul.hashicorp.com,resources=servicedefaults/status,verbs=get;update;patch

func (r *ServiceDefaultsController) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
return r.ConfigEntryController.ReconcileEntry(r, ctx, req, &consulv1alpha1.ServiceDefaults{})
return r.ConfigEntryController.ReconcileEntry(ctx, r, req, &consulv1alpha1.ServiceDefaults{})
}

func (r *ServiceDefaultsController) Logger(name types.NamespacedName) logr.Logger {
Expand Down

0 comments on commit 53423ae

Please sign in to comment.