diff --git a/cmd/sriov-network-operator-config-cleanup/cleanup_test.go b/cmd/sriov-network-operator-config-cleanup/cleanup_test.go index 1b756699a..3d7b8395c 100644 --- a/cmd/sriov-network-operator-config-cleanup/cleanup_test.go +++ b/cmd/sriov-network-operator-config-cleanup/cleanup_test.go @@ -141,10 +141,11 @@ func newConfigController() *configController { platformHelper.EXPECT().IsHypershift().Return(false).AnyTimes() err = (&controllers.SriovOperatorConfigReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - PlatformHelper: platformHelper, - FeatureGate: featuregate.New(), + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + PlatformHelper: platformHelper, + FeatureGate: featuregate.New(), + UncachedAPIReader: k8sManager.GetAPIReader(), }).SetupWithManager(k8sManager) Expect(err).ToNot(HaveOccurred()) diff --git a/controllers/sriovoperatorconfig_controller.go b/controllers/sriovoperatorconfig_controller.go index f79614c44..e54679035 100644 --- a/controllers/sriovoperatorconfig_controller.go +++ b/controllers/sriovoperatorconfig_controller.go @@ -56,9 +56,10 @@ import ( // SriovOperatorConfigReconciler reconciles a SriovOperatorConfig object type SriovOperatorConfigReconciler struct { client.Client - Scheme *runtime.Scheme - PlatformHelper platforms.Interface - FeatureGate featuregate.FeatureGate + Scheme *runtime.Scheme + PlatformHelper platforms.Interface + FeatureGate featuregate.FeatureGate + UncachedAPIReader client.Reader } //+kubebuilder:rbac:groups=sriovnetwork.openshift.io,resources=sriovoperatorconfigs,verbs=get;list;watch;create;update;patch;delete @@ -413,7 +414,8 @@ func (r *SriovOperatorConfigReconciler) syncOpenShiftSystemdService(ctx context. if cr.Spec.ConfigurationMode != sriovnetworkv1.SystemdConfigurationMode { obj := &machinev1.MachineConfig{} - err := r.Get(context.TODO(), types.NamespacedName{Name: consts.SystemdServiceOcpMachineConfigName}, obj) + // use uncached api reader to get machineconfig to reduce memory footprint + err := r.UncachedAPIReader.Get(ctx, types.NamespacedName{Name: consts.SystemdServiceOcpMachineConfigName}, obj) if err != nil { if apierrors.IsNotFound(err) { return nil @@ -424,7 +426,7 @@ func (r *SriovOperatorConfigReconciler) syncOpenShiftSystemdService(ctx context. } logger.Info("Systemd service was deployed but the operator is now operating on daemonset mode, removing the machine config") - err = r.Delete(context.TODO(), obj) + err = r.Delete(ctx, obj) if err != nil { logger.Error(err, "failed to remove the systemd service machine config") return err diff --git a/controllers/sriovoperatorconfig_controller_test.go b/controllers/sriovoperatorconfig_controller_test.go index 5a5b50292..9f6c483a5 100644 --- a/controllers/sriovoperatorconfig_controller_test.go +++ b/controllers/sriovoperatorconfig_controller_test.go @@ -65,10 +65,11 @@ var _ = Describe("SriovOperatorConfig controller", Ordered, func() { platformHelper.EXPECT().IsHypershift().Return(false).AnyTimes() err = (&SriovOperatorConfigReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - PlatformHelper: platformHelper, - FeatureGate: featuregate.New(), + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + PlatformHelper: platformHelper, + FeatureGate: featuregate.New(), + UncachedAPIReader: k8sManager.GetAPIReader(), }).SetupWithManager(k8sManager) Expect(err).ToNot(HaveOccurred()) diff --git a/main.go b/main.go index 7195c59c3..639d5ecc2 100644 --- a/main.go +++ b/main.go @@ -219,10 +219,11 @@ func main() { os.Exit(1) } if err = (&controllers.SriovOperatorConfigReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - PlatformHelper: platformsHelper, - FeatureGate: featureGate, + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + PlatformHelper: platformsHelper, + FeatureGate: featureGate, + UncachedAPIReader: mgr.GetAPIReader(), }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "SriovOperatorConfig") os.Exit(1)