mirror of https://github.com/k3s-io/k3s
Merge pull request #12913 from gmarek/remove_healthcheck
Remove unused (?) HealthCheck from KubeletClientpull/6/head
commit
25dfc9932f
|
@ -52,7 +52,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/kubelet/dockertools"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/master"
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
"k8s.io/kubernetes/pkg/tools/etcdtest"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
|
@ -82,10 +81,6 @@ func (fakeKubeletClient) GetConnectionInfo(host string) (string, uint, http.Roun
|
|||
return "", 0, nil, errors.New("Not Implemented")
|
||||
}
|
||||
|
||||
func (fakeKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
|
||||
return probe.Success, "", nil
|
||||
}
|
||||
|
||||
type delegateHandler struct {
|
||||
delegate http.Handler
|
||||
}
|
||||
|
|
|
@ -18,26 +18,14 @@ package unversioned
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
httprobe "k8s.io/kubernetes/pkg/probe/http"
|
||||
)
|
||||
|
||||
// KubeletClient is an interface for all kubelet functionality
|
||||
type KubeletClient interface {
|
||||
KubeletHealthChecker
|
||||
ConnectionInfoGetter
|
||||
}
|
||||
|
||||
// KubeletHealthchecker is an interface for healthchecking kubelets
|
||||
type KubeletHealthChecker interface {
|
||||
HealthCheck(host string) (result probe.Result, output string, err error)
|
||||
}
|
||||
|
||||
type ConnectionInfoGetter interface {
|
||||
GetConnectionInfo(host string) (scheme string, port uint, transport http.RoundTripper, err error)
|
||||
}
|
||||
|
@ -94,33 +82,11 @@ func (c *HTTPKubeletClient) GetConnectionInfo(host string) (string, uint, http.R
|
|||
return scheme, c.Config.Port, c.Client.Transport, nil
|
||||
}
|
||||
|
||||
func (c *HTTPKubeletClient) url(host, path, query string) *url.URL {
|
||||
scheme := "http"
|
||||
if c.Config.EnableHttps {
|
||||
scheme = "https"
|
||||
}
|
||||
|
||||
return &url.URL{
|
||||
Scheme: scheme,
|
||||
Host: net.JoinHostPort(host, strconv.FormatUint(uint64(c.Config.Port), 10)),
|
||||
Path: path,
|
||||
RawQuery: query,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *HTTPKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
|
||||
return httprobe.DoHTTPProbe(c.url(host, "/healthz", ""), c.Client)
|
||||
}
|
||||
|
||||
// FakeKubeletClient is a fake implementation of KubeletClient which returns an error
|
||||
// when called. It is useful to pass to the master in a test configuration with
|
||||
// no kubelets.
|
||||
type FakeKubeletClient struct{}
|
||||
|
||||
func (c FakeKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
|
||||
return probe.Unknown, "", errors.New("Not Implemented")
|
||||
}
|
||||
|
||||
func (c FakeKubeletClient) GetConnectionInfo(host string) (string, uint, http.RoundTripper, error) {
|
||||
return "", 0, nil, errors.New("Not Implemented")
|
||||
}
|
||||
|
|
|
@ -18,11 +18,8 @@ package unversioned
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
|
@ -43,65 +40,14 @@ func TestHTTPKubeletClient(t *testing.T) {
|
|||
testServer := httptest.NewServer(&fakeHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
hostURL, err := url.Parse(testServer.URL)
|
||||
_, err = url.Parse(testServer.URL)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
parts := strings.Split(hostURL.Host, ":")
|
||||
|
||||
port, err := strconv.Atoi(parts[1])
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
c := &HTTPKubeletClient{
|
||||
Client: http.DefaultClient,
|
||||
Config: &KubeletConfig{Port: uint(port)},
|
||||
}
|
||||
gotObj, _, err := c.HealthCheck(parts[0])
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if gotObj != expectObj {
|
||||
t.Errorf("expected: %#v, got %#v", expectObj, gotObj)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHTTPKubeletClientError(t *testing.T) {
|
||||
expectObj := probe.Failure
|
||||
fakeHandler := util.FakeHandler{
|
||||
StatusCode: 500,
|
||||
ResponseBody: "Internal server error",
|
||||
}
|
||||
testServer := httptest.NewServer(&fakeHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
hostURL, err := url.Parse(testServer.URL)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
parts := strings.Split(hostURL.Host, ":")
|
||||
|
||||
port, err := strconv.Atoi(parts[1])
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
c := &HTTPKubeletClient{
|
||||
Client: http.DefaultClient,
|
||||
Config: &KubeletConfig{Port: uint(port)},
|
||||
}
|
||||
gotObj, _, err := c.HealthCheck(parts[0])
|
||||
if gotObj != expectObj {
|
||||
t.Errorf("expected: %#v, got %#v", expectObj, gotObj)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewKubeletClient(t *testing.T) {
|
||||
config := &KubeletConfig{
|
||||
Port: 9000,
|
||||
EnableHttps: false,
|
||||
}
|
||||
|
||||
|
@ -112,20 +58,10 @@ func TestNewKubeletClient(t *testing.T) {
|
|||
if client == nil {
|
||||
t.Error("client is nil.")
|
||||
}
|
||||
|
||||
host := "127.0.0.1"
|
||||
healthStatus, _, err := client.HealthCheck(host)
|
||||
if healthStatus != probe.Failure {
|
||||
t.Errorf("Expected %v and got %v.", probe.Failure, healthStatus)
|
||||
}
|
||||
if err != nil {
|
||||
t.Error("Expected a nil error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewKubeletClientTLSInvalid(t *testing.T) {
|
||||
config := &KubeletConfig{
|
||||
Port: 9000,
|
||||
EnableHttps: true,
|
||||
//Invalid certificate and key path
|
||||
TLSClientConfig: TLSClientConfig{
|
||||
|
@ -146,7 +82,6 @@ func TestNewKubeletClientTLSInvalid(t *testing.T) {
|
|||
|
||||
func TestNewKubeletClientTLSValid(t *testing.T) {
|
||||
config := &KubeletConfig{
|
||||
Port: 9000,
|
||||
EnableHttps: true,
|
||||
TLSClientConfig: TLSClientConfig{
|
||||
CertFile: "../testdata/mycertvalid.cer",
|
||||
|
|
|
@ -52,6 +52,7 @@ func proxyContext(version string) {
|
|||
f := NewFramework("proxy")
|
||||
prefix := "/api/" + version
|
||||
|
||||
// Port here has to be kept in sync with default kubelet port.
|
||||
It("should proxy logs on node with explicit kubelet port", func() { nodeProxyTest(f, version, ":10250/logs/") })
|
||||
|
||||
It("should proxy logs on node", func() { nodeProxyTest(f, version, "/logs/") })
|
||||
|
|
Loading…
Reference in New Issue