Merge pull request #49915 from caesarxuchao/controller-ignore-initialize-timeout
Automatic merge from submit-queue (batch tested with PRs 49855, 49915) Let controllers ignore initialization timeout when creating pods Partially address https://github.com/kubernetes/kubernetes/issues/48893#issuecomment-318540129. This only updates the controllers that create pods with `GenerateName`. The controllers ignore the timeout error when creating the pods, depending on how the initialization progress: * If the initialization is successful in less than 5 mins, the controller will observe the creation via the informer. All is good. * If the initialization fails, server will delete the pod, but the controller won't receive any event. The controller will not create new pod until the Creation expectation expires in 5 min. * If the initialization takes too long (> 5 mins), the Creation expectation expires and the controller will create extra pods. I'll send follow-up PRs to fix the latter two cases, e.g., by refactoring the sharedInformer. Kubernetes-commit: f75f49e7a03700b5b300e9ccb61d434487bb0ccc
This commit is contained in:
		
						commit
						787b46c230
					
				|  | @ -362,8 +362,9 @@ func (e *Store) WaitForInitialized(ctx genericapirequest.Context, obj runtime.Ob | |||
| 		select { | ||||
| 		case event, ok := <-ch: | ||||
| 			if !ok { | ||||
| 				// TODO: should we just expose the partially initialized object?
 | ||||
| 				return nil, kubeerr.NewServerTimeout(e.QualifiedResource, "create", 0) | ||||
| 				msg := fmt.Sprintf("server has timed out waiting for the initialization of %s %s", | ||||
| 					e.QualifiedResource.String(), accessor.GetName()) | ||||
| 				return nil, kubeerr.NewTimeoutError(msg, 0) | ||||
| 			} | ||||
| 			switch event.Type { | ||||
| 			case watch.Deleted: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue