mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
Wait for server resources.
This commit is contained in:
parent
ded83878c1
commit
e504e5a316
@ -1165,12 +1165,14 @@ func hasRemainingContent(c clientset.Interface, clientPool dynamic.ClientPool, n
|
||||
}
|
||||
|
||||
// find out what content is supported on the server
|
||||
resources, err := c.Discovery().ServerPreferredNamespacedResources()
|
||||
if err != nil && !isDynamicDiscoveryError(err) {
|
||||
// Since extension apiserver is not always available, e.g. metrics server sometimes goes down,
|
||||
// add retry here.
|
||||
resources, err := waitForServerPreferredNamespacedResources(c.Discovery(), 30*time.Second)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
groupVersionResources, err := discovery.GroupVersionResources(resources)
|
||||
if err != nil && !isDynamicDiscoveryError(err) {
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
@ -5100,3 +5102,25 @@ func DsFromManifest(url string) (*extensions.DaemonSet, error) {
|
||||
}
|
||||
return &controller, nil
|
||||
}
|
||||
|
||||
// waitForServerPreferredNamespacedResources waits until server preferred namespaced resources could be successfully discovered.
|
||||
// TODO: Fix https://github.com/kubernetes/kubernetes/issues/55768 and remove the following retry.
|
||||
func waitForServerPreferredNamespacedResources(d discovery.DiscoveryInterface, timeout time.Duration) ([]*metav1.APIResourceList, error) {
|
||||
Logf("Waiting up to %v for server preferred namespaced resources to be successfully discovered", timeout)
|
||||
var resources []*metav1.APIResourceList
|
||||
if err := wait.PollImmediate(Poll, timeout, func() (bool, error) {
|
||||
var err error
|
||||
resources, err = d.ServerPreferredNamespacedResources()
|
||||
if err == nil || isDynamicDiscoveryError(err) {
|
||||
return true, nil
|
||||
}
|
||||
if !discovery.IsGroupDiscoveryFailedError(err) {
|
||||
return false, err
|
||||
}
|
||||
Logf("Error discoverying server preferred namespaced resources: %v, retrying in %v.", err, Poll)
|
||||
return false, nil
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resources, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user