Skip to content

Commit

Permalink
fix(k8s): only run necessary controllers on global (#11715)
Browse files Browse the repository at this point in the history
These aren't needed on global.

Signed-off-by: Mike Beaumont <mjboamail@gmail.com>
  • Loading branch information
michaelbeaumont authored Oct 21, 2024
1 parent db845f8 commit e430434
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
23 changes: 19 additions & 4 deletions pkg/plugins/runtime/k8s/plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func addControllers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8
if err := addNamespaceReconciler(mgr, rt); err != nil {
return err
}
if err := addServiceReconciler(mgr); err != nil {
if err := addServiceReconciler(mgr, rt); err != nil {
return err
}
if err := addMeshServiceReconciler(mgr, rt, converter); err != nil {
Expand All @@ -102,15 +102,18 @@ func addControllers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8

nodeTaintController := rt.Config().Runtime.Kubernetes.NodeTaintController
if nodeTaintController.Enabled {
if err := addCniNodeTaintReconciler(mgr, nodeTaintController.CniApp, nodeTaintController.CniNamespace); err != nil {
if err := addCniNodeTaintReconciler(mgr, rt, nodeTaintController.CniApp, nodeTaintController.CniNamespace); err != nil {
return err
}
}

return nil
}

func addCniNodeTaintReconciler(mgr kube_ctrl.Manager, cniApp string, cniNamespace string) error {
func addCniNodeTaintReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, cniApp string, cniNamespace string) error {
if rt.Config().Mode == config_core.Global {
return nil
}
reconciler := &k8s_controllers.CniNodeTaintReconciler{
Client: mgr.GetClient(),
Log: core.Log.WithName("controllers").WithName("NodeTaint"),
Expand All @@ -122,6 +125,9 @@ func addCniNodeTaintReconciler(mgr kube_ctrl.Manager, cniApp string, cniNamespac
}

func addNamespaceReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime) error {
if rt.Config().Mode == config_core.Global {
return nil
}
reconciler := &k8s_controllers.NamespaceReconciler{
Client: mgr.GetClient(),
Log: core.Log.WithName("controllers").WithName("Namespace"),
Expand All @@ -130,7 +136,10 @@ func addNamespaceReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime) erro
return reconciler.SetupWithManager(mgr)
}

func addServiceReconciler(mgr kube_ctrl.Manager) error {
func addServiceReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime) error {
if rt.Config().Mode == config_core.Global {
return nil
}
reconciler := &k8s_controllers.ServiceReconciler{
Client: mgr.GetClient(),
Log: core.Log.WithName("controllers").WithName("Service"),
Expand Down Expand Up @@ -172,6 +181,9 @@ func addMeshReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime) error {
}

func addPodReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8s_common.Converter) error {
if rt.Config().Mode == config_core.Global {
return nil
}
reconciler := &k8s_controllers.PodReconciler{
Client: mgr.GetClient(),
EventRecorder: mgr.GetEventRecorderFor("k8s.kuma.io/dataplane-generator"),
Expand Down Expand Up @@ -202,6 +214,9 @@ func addPodReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter
}

func addPodStatusReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8s_common.Converter) error {
if rt.Config().Mode == config_core.Global {
return nil
}
reconciler := &k8s_controllers.PodStatusReconciler{
Client: mgr.GetClient(),
EventRecorder: mgr.GetEventRecorderFor("k8s.kuma.io/dataplane-jobs-syncer"),
Expand Down
8 changes: 6 additions & 2 deletions pkg/plugins/runtime/k8s/plugin_gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
gatewayapi "sigs.k8s.io/gateway-api/apis/v1beta1"

mesh_proto "github.com/kumahq/kuma/api/mesh/v1alpha1"
config_core "github.com/kumahq/kuma/pkg/config/core"
"github.com/kumahq/kuma/pkg/core"
core_runtime "github.com/kumahq/kuma/pkg/core/runtime"
k8s_common "github.com/kumahq/kuma/pkg/plugins/common/k8s"
Expand Down Expand Up @@ -76,6 +77,9 @@ func meshGatewayCRDsPresent() bool {
func addGatewayReconcilers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8s_common.Converter) error {
cpURL := fmt.Sprintf("https://%s.%s:%d", rt.Config().Runtime.Kubernetes.ControlPlaneServiceName, rt.Config().Store.Kubernetes.SystemNamespace, rt.Config().DpServer.Port)

if rt.Config().Mode == config_core.Global {
return nil
}
// TODO don't use injector config
cfg := rt.Config().Runtime.Kubernetes.Injector

Expand Down Expand Up @@ -118,14 +122,14 @@ func addGatewayReconcilers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, conve
return errors.Wrap(err, "could not setup MeshGatewayInstance reconciler")
}

if err := addGatewayAPIReconcillers(mgr, rt, proxyFactory); err != nil {
if err := addGatewayAPIReconcilers(mgr, rt, proxyFactory); err != nil {
return err
}

return nil
}

func addGatewayAPIReconcillers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, proxyFactory *containers.DataplaneProxyFactory) error {
func addGatewayAPIReconcilers(mgr kube_ctrl.Manager, rt core_runtime.Runtime, proxyFactory *containers.DataplaneProxyFactory) error {
if ok, missingGatewayCRDs := gatewayAPICRDsPresent(mgr); !ok {
if len(requiredGatewayCRDs) != len(missingGatewayCRDs) {
// Logging this as error as in such case there is possibility that user is expecting
Expand Down

0 comments on commit e430434

Please sign in to comment.