This adds context from for cloud calls for Kubelet.

It continues the propogation started in #59287.
This commit is contained in:
walter 2019-10-14 22:01:22 -07:00
parent 46a29a0cc3
commit d9e57861e5
2 changed files with 8 additions and 7 deletions

View File

@ -17,6 +17,7 @@ limitations under the License.
package kubelet
import (
"context"
"fmt"
"io/ioutil"
"net"
@ -225,7 +226,7 @@ func (kl *Kubelet) getRuntime() kubecontainer.Runtime {
// GetNode returns the node info for the configured node name of this Kubelet.
func (kl *Kubelet) GetNode() (*v1.Node, error) {
if kl.kubeClient == nil {
return kl.initialNode()
return kl.initialNode(context.TODO())
}
return kl.nodeInfo.GetNodeInfo(string(kl.nodeName))
}
@ -241,7 +242,7 @@ func (kl *Kubelet) getNodeAnyWay() (*v1.Node, error) {
return n, nil
}
}
return kl.initialNode()
return kl.initialNode(context.TODO())
}
// GetNodeConfig returns the container manager node config.

View File

@ -63,7 +63,7 @@ func (kl *Kubelet) registerWithAPIServer() {
step = 7 * time.Second
}
node, err := kl.initialNode()
node, err := kl.initialNode(context.TODO())
if err != nil {
klog.Errorf("Unable to construct v1.Node object for kubelet: %v", err)
continue
@ -214,7 +214,7 @@ func (kl *Kubelet) reconcileCMADAnnotationWithExistingNode(node, existingNode *v
// initialNode constructs the initial v1.Node for this Kubelet, incorporating node
// labels, information from the cloud provider, and Kubelet configuration.
func (kl *Kubelet) initialNode() (*v1.Node, error) {
func (kl *Kubelet) initialNode(ctx context.Context) (*v1.Node, error) {
node := &v1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: string(kl.nodeName),
@ -320,13 +320,13 @@ func (kl *Kubelet) initialNode() (*v1.Node, error) {
// local metadata server here.
var err error
if node.Spec.ProviderID == "" {
node.Spec.ProviderID, err = cloudprovider.GetInstanceProviderID(context.TODO(), kl.cloud, kl.nodeName)
node.Spec.ProviderID, err = cloudprovider.GetInstanceProviderID(ctx, kl.cloud, kl.nodeName)
if err != nil {
return nil, err
}
}
instanceType, err := instances.InstanceType(context.TODO(), kl.nodeName)
instanceType, err := instances.InstanceType(ctx, kl.nodeName)
if err != nil {
return nil, err
}
@ -337,7 +337,7 @@ func (kl *Kubelet) initialNode() (*v1.Node, error) {
// If the cloud has zone information, label the node with the zone information
zones, ok := kl.cloud.Zones()
if ok {
zone, err := zones.GetZone(context.TODO())
zone, err := zones.GetZone(ctx)
if err != nil {
return nil, fmt.Errorf("failed to get zone from cloud provider: %v", err)
}