Skip to content

Commit

Permalink
Refactor to remove ClusterManager completely
Browse files Browse the repository at this point in the history
  • Loading branch information
rramkumar1 committed Aug 7, 2018
1 parent 9d0dfd2 commit 7c341b5
Show file tree
Hide file tree
Showing 15 changed files with 206 additions and 332 deletions.
50 changes: 21 additions & 29 deletions cmd/glbc/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,17 +100,27 @@ func main() {
}
}

namer, err := app.NewNamer(kubeClient, flags.F.ClusterName, firewalls.DefaultFirewallName)
if err != nil {
glog.Fatalf("app.NewNamer(ctx.KubeClient, %q, %q) = %v", flags.F.ClusterName, firewalls.DefaultFirewallName, err)
}
if namer.UID() != "" {
glog.V(0).Infof("Cluster name: %+v", namer.UID())
}

cloud := app.NewGCEClient()
enableNEG := flags.F.Features.NEG
defaultBackendServicePortID := app.DefaultBackendServicePortID(kubeClient)
ctxConfig := context.ControllerContextConfig{
NEGEnabled: enableNEG,
BackendConfigEnabled: flags.F.EnableBackendConfig,
Namespace: flags.F.WatchNamespace,
ResyncPeriod: flags.F.ResyncPeriod,
DefaultBackendSvcPortID: defaultBackendServicePortID,
}
ctx := context.NewControllerContext(kubeClient, backendConfigClient, cloud, ctxConfig)
NEGEnabled: enableNEG,
BackendConfigEnabled: flags.F.EnableBackendConfig,
Namespace: flags.F.WatchNamespace,
ResyncPeriod: flags.F.ResyncPeriod,
DefaultBackendSvcPortID: defaultBackendServicePortID,
HealthCheckPath: flags.F.HealthCheckPath,
DefaultBackendHealthCheckPath: flags.F.DefaultSvcHealthCheckPath,
}
ctx := context.NewControllerContext(kubeClient, backendConfigClient, cloud, namer, ctxConfig)
go app.RunHTTPServer(ctx.HealthCheck)

if !flags.F.LeaderElection.LeaderElect {
Expand Down Expand Up @@ -167,33 +177,14 @@ func makeLeaderElectionConfig(client clientset.Interface, recorder record.EventR
}

func runControllers(ctx *context.ControllerContext) {
namer, err := app.NewNamer(ctx.KubeClient, flags.F.ClusterName, firewalls.DefaultFirewallName)
if err != nil {
glog.Fatalf("app.NewNamer(ctx.KubeClient, %q, %q) = %v", flags.F.ClusterName, firewalls.DefaultFirewallName, err)
}

clusterManager, err := controller.NewClusterManager(ctx, namer, flags.F.HealthCheckPath, flags.F.DefaultSvcHealthCheckPath)
if err != nil {
glog.Fatalf("controller.NewClusterManager(cloud, namer, %q, %q) = %v", flags.F.HealthCheckPath, flags.F.DefaultSvcHealthCheckPath, err)
}

stopCh := make(chan struct{})
lbc := controller.NewLoadBalancerController(ctx, clusterManager, stopCh)
if err != nil {
glog.Fatalf("controller.NewLoadBalancerController(ctx, clusterManager, stopCh) = %v", err)
}
lbc := controller.NewLoadBalancerController(ctx, stopCh)

fwc := firewalls.NewFirewallController(ctx, namer, flags.F.NodePortRanges.Values())

if clusterManager.ClusterNamer.UID() != "" {
glog.V(0).Infof("Cluster name: %+v", clusterManager.ClusterNamer.UID())
}
clusterManager.Init(lbc.Translator, lbc.Translator)
glog.V(0).Infof("clusterManager initialized")
fwc := firewalls.NewFirewallController(ctx, flags.F.NodePortRanges.Values())

if ctx.NEGEnabled {
// TODO: Refactor NEG to use cloud mocks so ctx.Cloud can be referenced within NewController.
negController := neg.NewController(ctx.Cloud, ctx, lbc.Translator, namer, flags.F.ResyncPeriod)
negController := neg.NewController(ctx.Cloud, ctx, lbc.Translator, ctx.ClusterNamer, flags.F.ResyncPeriod)
go negController.Run(stopCh)
glog.V(0).Infof("negController started")
}
Expand All @@ -204,6 +195,7 @@ func runControllers(ctx *context.ControllerContext) {
glog.V(0).Infof("firewall controller started")

ctx.Start(stopCh)
lbc.Init()
lbc.Run()

for {
Expand Down
12 changes: 9 additions & 3 deletions pkg/context/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ type ControllerContext struct {

Cloud *gce.GCECloud

ClusterNamer *utils.Namer

ControllerContextConfig

IngressInformer cache.SharedIndexInformer
Expand All @@ -77,19 +79,23 @@ type ControllerContextConfig struct {
Namespace string
ResyncPeriod time.Duration
// DefaultBackendSvcPortID is the ServicePortID for the system default backend.
DefaultBackendSvcPortID utils.ServicePortID
DefaultBackendSvcPortID utils.ServicePortID
HealthCheckPath string
DefaultBackendHealthCheckPath string
}

// NewControllerContext returns a new shared set of informers.
func NewControllerContext(
kubeClient kubernetes.Interface,
backendConfigClient backendconfigclient.Interface,
cloud *gce.GCECloud,
namer *utils.Namer,
config ControllerContextConfig) *ControllerContext {

context := &ControllerContext{
KubeClient: kubeClient,
Cloud: cloud,
KubeClient: kubeClient,
Cloud: cloud,
ClusterNamer: namer,
ControllerContextConfig: config,
IngressInformer: informerv1beta1.NewIngressInformer(kubeClient, config.Namespace, config.ResyncPeriod, NewIndexer()),
ServiceInformer: informerv1.NewServiceInformer(kubeClient, config.Namespace, config.ResyncPeriod, NewIndexer()),
Expand Down
145 changes: 0 additions & 145 deletions pkg/controller/cluster_manager.go

This file was deleted.

Loading

0 comments on commit 7c341b5

Please sign in to comment.