From 16d64d692505e289a2f80ba00d854cfd8dce39e2 Mon Sep 17 00:00:00 2001 From: obitech Date: Sat, 25 May 2019 21:02:16 +0200 Subject: [PATCH 1/3] Fix golint issues in pkg/kubelet/client Add comments to exported functions in `pkg/kubelet/client/client.go` In `KubeletClientConfig` rename `EnableHttps` to `EnableHTTPS`. This requires renaming it in `pkg/kubelet/client/client_test.go` --- hack/.golint_failures | 1 - pkg/kubelet/client/kubelet_client.go | 21 +++++++++++++++------ pkg/kubelet/client/kubelet_client_test.go | 8 ++++---- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/hack/.golint_failures b/hack/.golint_failures index 2b401afcb9e..5c331fb3a57 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -151,7 +151,6 @@ pkg/kubelet/apis/deviceplugin/v1beta1 pkg/kubelet/cadvisor pkg/kubelet/cadvisor/testing pkg/kubelet/checkpointmanager/testing/example_checkpoint_formats/v1 -pkg/kubelet/client pkg/kubelet/cm pkg/kubelet/config pkg/kubelet/configmap diff --git a/pkg/kubelet/client/kubelet_client.go b/pkg/kubelet/client/kubelet_client.go index bde19b76e66..05d59aaca00 100644 --- a/pkg/kubelet/client/kubelet_client.go +++ b/pkg/kubelet/client/kubelet_client.go @@ -22,7 +22,7 @@ import ( "strconv" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" @@ -31,11 +31,16 @@ import ( nodeutil "k8s.io/kubernetes/pkg/util/node" ) +// KubeletClientConfig defines config parameters for the kubelet client type KubeletClientConfig struct { - // Default port - used if no information about Kubelet port can be found in Node.NodeStatus.DaemonEndpoints. - Port uint + // Port specifies the default port - used if no information about Kubelet port can be found in Node.NodeStatus.DaemonEndpoints. + Port uint + + // ReadOnlyPort specifies the Port for ReadOnly communications. ReadOnlyPort uint - EnableHttps bool + + // EnableHTTPs specifies if traffic should be encrypted. + EnableHTTPS bool // PreferredAddressTypes - used to select an address from Node.NodeStatus.Addresses PreferredAddressTypes []string @@ -66,6 +71,7 @@ type ConnectionInfoGetter interface { GetConnectionInfo(ctx context.Context, nodeName types.NodeName) (*ConnectionInfo, error) } +// MakeTransport creates a RoundTripper for HTTP Transport. func MakeTransport(config *KubeletClientConfig) (http.RoundTripper, error) { tlsConfig, err := transport.TLSConfigFor(config.transportConfig()) if err != nil { @@ -96,7 +102,7 @@ func (c *KubeletClientConfig) transportConfig() *transport.Config { }, BearerToken: c.BearerToken, } - if c.EnableHttps && !cfg.HasCA() { + if c.EnableHTTPS && !cfg.HasCA() { cfg.TLS.Insecure = true } return cfg @@ -110,6 +116,7 @@ type NodeGetter interface { // NodeGetterFunc allows implementing NodeGetter with a function type NodeGetterFunc func(ctx context.Context, name string, options metav1.GetOptions) (*v1.Node, error) +// Get fetches information via NodeGetterFunc. func (f NodeGetterFunc) Get(ctx context.Context, name string, options metav1.GetOptions) (*v1.Node, error) { return f(ctx, name, options) } @@ -128,9 +135,10 @@ type NodeConnectionInfoGetter struct { preferredAddressTypes []v1.NodeAddressType } +// NewNodeConnectionInfoGetter creates a new NodeConnectionInfoGetter. func NewNodeConnectionInfoGetter(nodes NodeGetter, config KubeletClientConfig) (ConnectionInfoGetter, error) { scheme := "http" - if config.EnableHttps { + if config.EnableHTTPS { scheme = "https" } @@ -154,6 +162,7 @@ func NewNodeConnectionInfoGetter(nodes NodeGetter, config KubeletClientConfig) ( }, nil } +// GetConnectionInfo retrieves connection info from the status of a Node API object. func (k *NodeConnectionInfoGetter) GetConnectionInfo(ctx context.Context, nodeName types.NodeName) (*ConnectionInfo, error) { node, err := k.nodes.Get(ctx, string(nodeName), metav1.GetOptions{}) if err != nil { diff --git a/pkg/kubelet/client/kubelet_client_test.go b/pkg/kubelet/client/kubelet_client_test.go index eab358dee2b..cea7805c4a9 100644 --- a/pkg/kubelet/client/kubelet_client_test.go +++ b/pkg/kubelet/client/kubelet_client_test.go @@ -24,7 +24,7 @@ import ( func TestMakeTransportInvalid(t *testing.T) { config := &KubeletClientConfig{ - EnableHttps: true, + EnableHTTPS: true, //Invalid certificate and key path TLSClientConfig: restclient.TLSClientConfig{ CertFile: "../../client/testdata/mycertinvalid.cer", @@ -45,12 +45,12 @@ func TestMakeTransportInvalid(t *testing.T) { func TestMakeTransportValid(t *testing.T) { config := &KubeletClientConfig{ Port: 1234, - EnableHttps: true, + EnableHTTPS: true, TLSClientConfig: restclient.TLSClientConfig{ CertFile: "../../client/testdata/mycertvalid.cer", - // TLS Configuration, only applies if EnableHttps is true. + // TLS Configuration, only applies if EnableHTTPS is true. KeyFile: "../../client/testdata/mycertvalid.key", - // TLS Configuration, only applies if EnableHttps is true. + // TLS Configuration, only applies if EnableHTTPS is true. CAFile: "../../client/testdata/myCA.cer", }, } From 5efe2c1bb7ceb0854a38205e6726911378baecb1 Mon Sep 17 00:00:00 2001 From: obitech Date: Sat, 25 May 2019 21:08:57 +0200 Subject: [PATCH 2/3] Fix golint issues in pkg/kubelet/stats/log_metrics_provider.go --- pkg/kubelet/stats/log_metrics_provider.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/kubelet/stats/log_metrics_provider.go b/pkg/kubelet/stats/log_metrics_provider.go index 1d31c8b5997..4a53eef74a3 100644 --- a/pkg/kubelet/stats/log_metrics_provider.go +++ b/pkg/kubelet/stats/log_metrics_provider.go @@ -20,12 +20,14 @@ import ( "k8s.io/kubernetes/pkg/volume" ) +// LogMetricsService defines an interface for providing LogMetrics functionality. type LogMetricsService interface { createLogMetricsProvider(path string) volume.MetricsProvider } type logMetrics struct{} +// NewLogMetricsService returns a new LogMetricsService type struct. func NewLogMetricsService() LogMetricsService { return logMetrics{} } From 2426ff8ae061a0c39f1f33162d93aa08b3fda41a Mon Sep 17 00:00:00 2001 From: obitech Date: Mon, 27 May 2019 20:14:13 +0200 Subject: [PATCH 3/3] Change to EnableHTTPS in kube-apiserver options --- cmd/kube-apiserver/app/options/options.go | 4 ++-- cmd/kube-apiserver/app/options/options_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/kube-apiserver/app/options/options.go b/cmd/kube-apiserver/app/options/options.go index 1ba2092f0f4..90040443311 100644 --- a/cmd/kube-apiserver/app/options/options.go +++ b/cmd/kube-apiserver/app/options/options.go @@ -107,7 +107,7 @@ func NewServerRunOptions() *ServerRunOptions { string(api.NodeExternalDNS), string(api.NodeExternalIP), }, - EnableHttps: true, + EnableHTTPS: true, HTTPTimeout: time.Duration(5) * time.Second, }, ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, @@ -184,7 +184,7 @@ func (s *ServerRunOptions) Flags() (fss cliflag.NamedFlagSets) { "Example: '30000-32767'. Inclusive at both ends of the range.") // Kubelet related flags: - fs.BoolVar(&s.KubeletConfig.EnableHttps, "kubelet-https", s.KubeletConfig.EnableHttps, + fs.BoolVar(&s.KubeletConfig.EnableHTTPS, "kubelet-https", s.KubeletConfig.EnableHTTPS, "Use https for kubelet connections.") fs.StringSliceVar(&s.KubeletConfig.PreferredAddressTypes, "kubelet-preferred-address-types", s.KubeletConfig.PreferredAddressTypes, diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index 917a5661f0f..aa1c9bc3b32 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -186,7 +186,7 @@ func TestAddFlags(t *testing.T) { string(kapi.NodeExternalDNS), string(kapi.NodeExternalIP), }, - EnableHttps: true, + EnableHTTPS: true, HTTPTimeout: time.Duration(5) * time.Second, TLSClientConfig: restclient.TLSClientConfig{ CertFile: "/var/run/kubernetes/ceserver.crt",