mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #12913 from gmarek/remove_healthcheck
Remove unused (?) HealthCheck from KubeletClient
This commit is contained in:
commit
25dfc9932f
@ -52,7 +52,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubelet/dockertools"
|
"k8s.io/kubernetes/pkg/kubelet/dockertools"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/master"
|
"k8s.io/kubernetes/pkg/master"
|
||||||
"k8s.io/kubernetes/pkg/probe"
|
|
||||||
"k8s.io/kubernetes/pkg/tools/etcdtest"
|
"k8s.io/kubernetes/pkg/tools/etcdtest"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
"k8s.io/kubernetes/pkg/util/wait"
|
"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")
|
return "", 0, nil, errors.New("Not Implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fakeKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
|
|
||||||
return probe.Success, "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type delegateHandler struct {
|
type delegateHandler struct {
|
||||||
delegate http.Handler
|
delegate http.Handler
|
||||||
}
|
}
|
||||||
|
@ -18,26 +18,14 @@ package unversioned
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"net"
|
|
||||||
"net/http"
|
"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
|
// KubeletClient is an interface for all kubelet functionality
|
||||||
type KubeletClient interface {
|
type KubeletClient interface {
|
||||||
KubeletHealthChecker
|
|
||||||
ConnectionInfoGetter
|
ConnectionInfoGetter
|
||||||
}
|
}
|
||||||
|
|
||||||
// KubeletHealthchecker is an interface for healthchecking kubelets
|
|
||||||
type KubeletHealthChecker interface {
|
|
||||||
HealthCheck(host string) (result probe.Result, output string, err error)
|
|
||||||
}
|
|
||||||
|
|
||||||
type ConnectionInfoGetter interface {
|
type ConnectionInfoGetter interface {
|
||||||
GetConnectionInfo(host string) (scheme string, port uint, transport http.RoundTripper, err error)
|
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
|
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
|
// 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
|
// when called. It is useful to pass to the master in a test configuration with
|
||||||
// no kubelets.
|
// no kubelets.
|
||||||
type FakeKubeletClient struct{}
|
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) {
|
func (c FakeKubeletClient) GetConnectionInfo(host string) (string, uint, http.RoundTripper, error) {
|
||||||
return "", 0, nil, errors.New("Not Implemented")
|
return "", 0, nil, errors.New("Not Implemented")
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,8 @@ package unversioned
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/http"
|
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/probe"
|
"k8s.io/kubernetes/pkg/probe"
|
||||||
@ -43,65 +40,14 @@ func TestHTTPKubeletClient(t *testing.T) {
|
|||||||
testServer := httptest.NewServer(&fakeHandler)
|
testServer := httptest.NewServer(&fakeHandler)
|
||||||
defer testServer.Close()
|
defer testServer.Close()
|
||||||
|
|
||||||
hostURL, err := url.Parse(testServer.URL)
|
_, err = url.Parse(testServer.URL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("unexpected error: %v", err)
|
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) {
|
func TestNewKubeletClient(t *testing.T) {
|
||||||
config := &KubeletConfig{
|
config := &KubeletConfig{
|
||||||
Port: 9000,
|
|
||||||
EnableHttps: false,
|
EnableHttps: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,20 +58,10 @@ func TestNewKubeletClient(t *testing.T) {
|
|||||||
if client == nil {
|
if client == nil {
|
||||||
t.Error("client is 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) {
|
func TestNewKubeletClientTLSInvalid(t *testing.T) {
|
||||||
config := &KubeletConfig{
|
config := &KubeletConfig{
|
||||||
Port: 9000,
|
|
||||||
EnableHttps: true,
|
EnableHttps: true,
|
||||||
//Invalid certificate and key path
|
//Invalid certificate and key path
|
||||||
TLSClientConfig: TLSClientConfig{
|
TLSClientConfig: TLSClientConfig{
|
||||||
@ -146,7 +82,6 @@ func TestNewKubeletClientTLSInvalid(t *testing.T) {
|
|||||||
|
|
||||||
func TestNewKubeletClientTLSValid(t *testing.T) {
|
func TestNewKubeletClientTLSValid(t *testing.T) {
|
||||||
config := &KubeletConfig{
|
config := &KubeletConfig{
|
||||||
Port: 9000,
|
|
||||||
EnableHttps: true,
|
EnableHttps: true,
|
||||||
TLSClientConfig: TLSClientConfig{
|
TLSClientConfig: TLSClientConfig{
|
||||||
CertFile: "../testdata/mycertvalid.cer",
|
CertFile: "../testdata/mycertvalid.cer",
|
||||||
|
@ -52,6 +52,7 @@ func proxyContext(version string) {
|
|||||||
f := NewFramework("proxy")
|
f := NewFramework("proxy")
|
||||||
prefix := "/api/" + version
|
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 with explicit kubelet port", func() { nodeProxyTest(f, version, ":10250/logs/") })
|
||||||
|
|
||||||
It("should proxy logs on node", func() { nodeProxyTest(f, version, "/logs/") })
|
It("should proxy logs on node", func() { nodeProxyTest(f, version, "/logs/") })
|
||||||
|
Loading…
Reference in New Issue
Block a user