From e06912ca3e38caa09d465dc56f370a4996376555 Mon Sep 17 00:00:00 2001 From: Tim Allclair Date: Thu, 8 Aug 2019 18:39:38 -0700 Subject: [PATCH] Clean up deprecated references --- pkg/kubelet/dockershim/libdocker/client.go | 2 +- pkg/kubelet/kuberuntime/BUILD | 3 ++- .../kuberuntime/instrumented_services_test.go | 3 ++- .../kuberuntime/kuberuntime_container.go | 25 +++++++++++-------- pkg/kubelet/server/server.go | 1 + pkg/kubelet/server/streaming/BUILD | 1 - pkg/kubelet/server/streaming/errors.go | 10 ++++---- .../server/streaming/request_cache_test.go | 9 ++++--- 8 files changed, 31 insertions(+), 23 deletions(-) diff --git a/pkg/kubelet/dockershim/libdocker/client.go b/pkg/kubelet/dockershim/libdocker/client.go index db0b6a80001..97cf509a9e4 100644 --- a/pkg/kubelet/dockershim/libdocker/client.go +++ b/pkg/kubelet/dockershim/libdocker/client.go @@ -75,7 +75,7 @@ func getDockerClient(dockerEndpoint string) (*dockerapi.Client, error) { klog.Infof("Connecting to docker on %s", dockerEndpoint) return dockerapi.NewClient(dockerEndpoint, "", nil, nil) } - return dockerapi.NewEnvClient() + return dockerapi.NewClientWithOpts(dockerapi.FromEnv) } // ConnectToDockerOrDie creates docker client connecting to docker daemon. diff --git a/pkg/kubelet/kuberuntime/BUILD b/pkg/kubelet/kuberuntime/BUILD index 444b45199b1..1e92393a144 100644 --- a/pkg/kubelet/kuberuntime/BUILD +++ b/pkg/kubelet/kuberuntime/BUILD @@ -68,7 +68,7 @@ go_library( "//staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2:go_default_library", "//vendor/github.com/armon/circbuf:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", - "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", "//vendor/k8s.io/klog:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux": [ @@ -122,6 +122,7 @@ go_test( "//vendor/github.com/golang/mock/gomock:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library", diff --git a/pkg/kubelet/kuberuntime/instrumented_services_test.go b/pkg/kubelet/kuberuntime/instrumented_services_test.go index a70c22bc11f..7704d3bfe0c 100644 --- a/pkg/kubelet/kuberuntime/instrumented_services_test.go +++ b/pkg/kubelet/kuberuntime/instrumented_services_test.go @@ -23,6 +23,7 @@ import ( "time" "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/stretchr/testify/assert" runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" "k8s.io/kubernetes/pkg/kubelet/metrics" @@ -40,7 +41,7 @@ func TestRecordOperation(t *testing.T) { prometheusURL := "http://" + temporalServer + "/metrics" mux := http.NewServeMux() - mux.Handle("/metrics", prometheus.Handler()) + mux.Handle("/metrics", promhttp.Handler()) server := &http.Server{ Addr: temporalServer, Handler: mux, diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container.go b/pkg/kubelet/kuberuntime/kuberuntime_container.go index 2983bbec76a..c499bdaac85 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container.go @@ -30,7 +30,7 @@ import ( "sync" "time" - "google.golang.org/grpc" + grpcstatus "google.golang.org/grpc/status" "github.com/armon/circbuf" "k8s.io/klog" @@ -94,7 +94,8 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb // Step 1: pull the image. imageRef, msg, err := m.imagePuller.EnsureImageExists(pod, container, pullSecrets, podSandboxConfig) if err != nil { - m.recordContainerEvent(pod, container, "", v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", grpc.ErrorDesc(err)) + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, "", v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", s.Message()) return msg, err } @@ -117,19 +118,22 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb defer cleanupAction() } if err != nil { - m.recordContainerEvent(pod, container, "", v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", grpc.ErrorDesc(err)) - return grpc.ErrorDesc(err), ErrCreateContainerConfig + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, "", v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", s.Message()) + return s.Message(), ErrCreateContainerConfig } containerID, err := m.runtimeService.CreateContainer(podSandboxID, containerConfig, podSandboxConfig) if err != nil { - m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", grpc.ErrorDesc(err)) - return grpc.ErrorDesc(err), ErrCreateContainer + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToCreateContainer, "Error: %v", s.Message()) + return s.Message(), ErrCreateContainer } err = m.internalLifecycle.PreStartContainer(pod, container, containerID) if err != nil { - m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToStartContainer, "Internal PreStartContainer hook failed: %v", grpc.ErrorDesc(err)) - return grpc.ErrorDesc(err), ErrPreStartHook + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToStartContainer, "Internal PreStartContainer hook failed: %v", s.Message()) + return s.Message(), ErrPreStartHook } m.recordContainerEvent(pod, container, containerID, v1.EventTypeNormal, events.CreatedContainer, fmt.Sprintf("Created container %s", container.Name)) @@ -143,8 +147,9 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb // Step 3: start the container. err = m.runtimeService.StartContainer(containerID) if err != nil { - m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToStartContainer, "Error: %v", grpc.ErrorDesc(err)) - return grpc.ErrorDesc(err), kubecontainer.ErrRunContainer + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, containerID, v1.EventTypeWarning, events.FailedToStartContainer, "Error: %v", s.Message()) + return s.Message(), kubecontainer.ErrRunContainer } m.recordContainerEvent(pod, container, containerID, v1.EventTypeNormal, events.StartedContainer, fmt.Sprintf("Started container %s", container.Name)) diff --git a/pkg/kubelet/server/server.go b/pkg/kubelet/server/server.go index 2831466e375..9c28896c679 100644 --- a/pkg/kubelet/server/server.go +++ b/pkg/kubelet/server/server.go @@ -296,6 +296,7 @@ func (s *Server) InstallDefaultHandlers(enableCAdvisorJSONEndpoints bool) { s.restfulCont.Add(ws) s.restfulCont.Add(stats.CreateHandlers(statsPath, s.host, s.resourceAnalyzer, enableCAdvisorJSONEndpoints)) + //lint:ignore SA1019 https://github.com/kubernetes/enhancements/issues/1206 s.restfulCont.Handle(metricsPath, prometheus.Handler()) // cAdvisor metrics are exposed under the secured handler as well diff --git a/pkg/kubelet/server/streaming/BUILD b/pkg/kubelet/server/streaming/BUILD index 0a9037d3375..d133e06be93 100644 --- a/pkg/kubelet/server/streaming/BUILD +++ b/pkg/kubelet/server/streaming/BUILD @@ -23,7 +23,6 @@ go_library( "//staging/src/k8s.io/client-go/tools/remotecommand:go_default_library", "//staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2:go_default_library", "//vendor/github.com/emicklei/go-restful:go_default_library", - "//vendor/google.golang.org/grpc:go_default_library", "//vendor/google.golang.org/grpc/codes:go_default_library", "//vendor/google.golang.org/grpc/status:go_default_library", ], diff --git a/pkg/kubelet/server/streaming/errors.go b/pkg/kubelet/server/streaming/errors.go index bc56f43fc8c..5cbe9d505d3 100644 --- a/pkg/kubelet/server/streaming/errors.go +++ b/pkg/kubelet/server/streaming/errors.go @@ -20,25 +20,25 @@ import ( "net/http" "strconv" - "google.golang.org/grpc" "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" + grpcstatus "google.golang.org/grpc/status" ) // NewErrorStreamingDisabled creates an error for disabled streaming method. func NewErrorStreamingDisabled(method string) error { - return status.Errorf(codes.NotFound, "streaming method %s disabled", method) + return grpcstatus.Errorf(codes.NotFound, "streaming method %s disabled", method) } // NewErrorTooManyInFlight creates an error for exceeding the maximum number of in-flight requests. func NewErrorTooManyInFlight() error { - return status.Error(codes.ResourceExhausted, "maximum number of in-flight requests exceeded") + return grpcstatus.Error(codes.ResourceExhausted, "maximum number of in-flight requests exceeded") } // WriteError translates a CRI streaming error into an appropriate HTTP response. func WriteError(err error, w http.ResponseWriter) error { + s, _ := grpcstatus.FromError(err) var status int - switch grpc.Code(err) { + switch s.Code() { case codes.NotFound: status = http.StatusNotFound case codes.ResourceExhausted: diff --git a/pkg/kubelet/server/streaming/request_cache_test.go b/pkg/kubelet/server/streaming/request_cache_test.go index 79edaeff44e..f776b6429d4 100644 --- a/pkg/kubelet/server/streaming/request_cache_test.go +++ b/pkg/kubelet/server/streaming/request_cache_test.go @@ -68,10 +68,11 @@ func TestInsert(t *testing.T) { // Insert again (should evict) _, err = c.Insert(nextRequest()) assert.Error(t, err, "should reject further requests") - errResponse := httptest.NewRecorder() - require.NoError(t, WriteError(err, errResponse)) - assert.Equal(t, errResponse.Code, http.StatusTooManyRequests) - assert.Equal(t, strconv.Itoa(int(cacheTTL.Seconds())), errResponse.HeaderMap.Get("Retry-After")) + recorder := httptest.NewRecorder() + require.NoError(t, WriteError(err, recorder)) + errResponse := recorder.Result() + assert.Equal(t, errResponse.StatusCode, http.StatusTooManyRequests) + assert.Equal(t, strconv.Itoa(int(cacheTTL.Seconds())), errResponse.Header.Get("Retry-After")) assertCacheSize(t, c, maxInFlight) _, ok = c.Consume(oldestTok)