mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-30 17:58:14 +00:00 
			
		
		
		
	Merge pull request #52376 from nicksardo/fix-cloudprovider-initialization
Automatic merge from submit-queue (batch tested with PRs 52376, 52439, 52382, 52358, 52372) Pass correct clientbuilder to cloudproviders Fixes https://github.com/kubernetes/kubeadm/issues/425 by moving the Initialize call to after the start of the token controller and passing `clientBuilder` instead of `rootClientBuilder` to the cloudproviders. /assign @bowei **Release note**: ```release-note NONE ``` Should fix in 1.8 and cherrypick to 1.7
This commit is contained in:
		| @@ -416,6 +416,9 @@ func GetAvailableResources(clientBuilder controller.ControllerClientBuilder) (ma | ||||
| 	return allResources, nil | ||||
| } | ||||
|  | ||||
| // CreateControllerContext creates a context struct containing references to resources needed by the | ||||
| // controllers such as the cloud provider and clientBuilder. rootClientBuilder is only used for | ||||
| // the shared-informers client and token controller. | ||||
| func CreateControllerContext(s *options.CMServer, rootClientBuilder, clientBuilder controller.ControllerClientBuilder, stop <-chan struct{}) (ControllerContext, error) { | ||||
| 	versionedClient := rootClientBuilder.ClientOrDie("shared-informers") | ||||
| 	sharedInformers := informers.NewSharedInformerFactory(versionedClient, ResyncPeriod(s)()) | ||||
| @@ -429,16 +432,12 @@ func CreateControllerContext(s *options.CMServer, rootClientBuilder, clientBuild | ||||
| 	if err != nil { | ||||
| 		return ControllerContext{}, fmt.Errorf("cloud provider could not be initialized: %v", err) | ||||
| 	} | ||||
| 	if cloud != nil { | ||||
| 		// Initialize the cloud provider with a reference to the clientBuilder | ||||
| 		cloud.Initialize(rootClientBuilder) | ||||
|  | ||||
| 		if cloud.HasClusterID() == false { | ||||
| 			if s.AllowUntaggedCloud == true { | ||||
| 				glog.Warning("detected a cluster without a ClusterID.  A ClusterID will be required in the future.  Please tag your cluster to avoid any future issues") | ||||
| 			} else { | ||||
| 				return ControllerContext{}, fmt.Errorf("no ClusterID Found.  A ClusterID is required for the cloud provider to function properly.  This check can be bypassed by setting the allow-untagged-cloud option") | ||||
| 			} | ||||
| 	if cloud != nil && cloud.HasClusterID() == false { | ||||
| 		if s.AllowUntaggedCloud == true { | ||||
| 			glog.Warning("detected a cluster without a ClusterID.  A ClusterID will be required in the future.  Please tag your cluster to avoid any future issues") | ||||
| 		} else { | ||||
| 			return ControllerContext{}, fmt.Errorf("no ClusterID Found.  A ClusterID is required for the cloud provider to function properly.  This check can be bypassed by setting the allow-untagged-cloud option") | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| @@ -461,6 +460,12 @@ func StartControllers(ctx ControllerContext, startSATokenController InitFunc, co | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// Initialize the cloud provider with a reference to the clientBuilder only after token controller | ||||
| 	// has started in case the cloud provider uses the client builder. | ||||
| 	if ctx.Cloud != nil { | ||||
| 		ctx.Cloud.Initialize(ctx.ClientBuilder) | ||||
| 	} | ||||
|  | ||||
| 	for controllerName, initFn := range controllers { | ||||
| 		if !ctx.IsControllerEnabled(controllerName) { | ||||
| 			glog.Warningf("%q is disabled", controllerName) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue