in pkg/cloudprovider/vsphereparavirtual/cloud.go [94:157]
func (cp *VSphereParavirtual) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{}) {
klog.V(0).Info("Initing vSphere Paravirtual Cloud Provider")
ownerRef, err := readOwnerRef(VsphereParavirtualCloudProviderConfigPath)
if err != nil {
klog.Fatalf("Failed to read ownerRef:%s", err)
}
client, err := clientBuilder.Client(clientName)
if err != nil {
klog.Fatalf("Failed to create cloud provider client: %v", err)
}
cp.client = client
cp.informMgr = k8s.NewInformer(client, true)
cp.ownerReference = ownerRef
kcfg, err := getRestConfig(SupervisorClusterConfigPath)
if err != nil {
klog.Fatalf("Failed to create rest config to communicate with supervisor: %v", err)
}
clusterNS, err := getNameSpace(SupervisorClusterConfigPath)
if err != nil {
klog.Fatalf("Failed to get cluster namespace: %v", err)
}
routes, err := NewRoutes(clusterNS, kcfg, *cp.ownerReference)
if err != nil {
klog.Errorf("Failed to init Route: %v", err)
}
cp.routes = routes
cp.informMgr.AddNodeListener(cp.nodeAdded, cp.nodeDeleted, nil)
lb, err := NewLoadBalancer(clusterNS, kcfg, cp.ownerReference)
if err != nil {
klog.Errorf("Failed to init LoadBalancer: %v", err)
}
cp.loadBalancer = lb
instances, err := NewInstances(clusterNS, kcfg)
if err != nil {
klog.Errorf("Failed to init Instance: %v", err)
}
cp.instances = instances
if RouteEnabled {
klog.V(0).Info("Starting routable pod controllers")
if err := routablepod.StartControllers(kcfg, client, cp.informMgr, ClusterName, clusterNS, ownerRef); err != nil {
klog.Errorf("Failed to start Routable pod controllers: %v", err)
}
}
zones, err := NewZones(clusterNS, kcfg)
if err != nil {
klog.Errorf("Failed to init Zones: %v", err)
}
cp.zones = zones
cp.informMgr.Listen()
klog.V(0).Info("Initing vSphere Paravirtual Cloud Provider Succeeded")
}