Rename NewNodeFromClient to just NewNode

Since we now store the client on the config, we don't need to use a
custom client.
This commit is contained in:
Brian Goff
2021-06-09 16:59:23 +00:00
parent 4974e062d0
commit c9c0d99064
2 changed files with 15 additions and 22 deletions

View File

@@ -32,7 +32,6 @@ import (
"github.com/virtual-kubelet/virtual-kubelet/node/nodeutil" "github.com/virtual-kubelet/virtual-kubelet/node/nodeutil"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"k8s.io/apiserver/pkg/server/dynamiccertificates" "k8s.io/apiserver/pkg/server/dynamiccertificates"
"k8s.io/client-go/kubernetes"
) )
// NewCommand creates a new top-level command. // NewCommand creates a new top-level command.
@@ -74,11 +73,6 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error {
} }
} }
client, err := nodeutil.ClientsetFromEnv(c.KubeConfigPath)
if err != nil {
return err
}
mux := http.NewServeMux() mux := http.NewServeMux()
newProvider := func(cfg nodeutil.ProviderConfig) (nodeutil.Provider, node.NodeProvider, error) { newProvider := func(cfg nodeutil.ProviderConfig) (nodeutil.Provider, node.NodeProvider, error) {
rm, err := manager.NewResourceManager(cfg.Pods, cfg.Secrets, cfg.ConfigMaps, cfg.Services) rm, err := manager.NewResourceManager(cfg.Pods, cfg.Secrets, cfg.ConfigMaps, cfg.Services)
@@ -113,7 +107,8 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error {
return err return err
} }
cm, err := nodeutil.NewNodeFromClient(c.NodeName, newProvider, func(cfg *nodeutil.NodeConfig) error { cm, err := nodeutil.NewNode(c.NodeName, newProvider, func(cfg *nodeutil.NodeConfig) error {
cfg.KubeconfigPath = c.KubeConfigPath
cfg.Handler = mux cfg.Handler = mux
cfg.InformerResyncPeriod = c.InformerResyncPeriod cfg.InformerResyncPeriod = c.InformerResyncPeriod
@@ -132,8 +127,7 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error {
return nil return nil
}, },
nodeutil.WithClient(client), setAuth(c.NodeName, apiConfig),
setAuth(client, c.NodeName, apiConfig),
nodeutil.WithTLSConfig( nodeutil.WithTLSConfig(
nodeutil.WithKeyPairFromPath(apiConfig.CertPath, apiConfig.KeyPath), nodeutil.WithKeyPairFromPath(apiConfig.CertPath, apiConfig.KeyPath),
maybeCA(apiConfig.CACertPath), maybeCA(apiConfig.CACertPath),
@@ -178,7 +172,7 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error {
return nil return nil
} }
func setAuth(client kubernetes.Interface, node string, apiCfg *apiServerConfig) nodeutil.NodeOpt { func setAuth(node string, apiCfg *apiServerConfig) nodeutil.NodeOpt {
if apiCfg.CACertPath == "" { if apiCfg.CACertPath == "" {
return func(cfg *nodeutil.NodeConfig) error { return func(cfg *nodeutil.NodeConfig) error {
cfg.Handler = api.InstrumentHandler(nodeutil.WithAuth(nodeutil.NoAuth(), cfg.Handler)) cfg.Handler = api.InstrumentHandler(nodeutil.WithAuth(nodeutil.NoAuth(), cfg.Handler))
@@ -187,7 +181,7 @@ func setAuth(client kubernetes.Interface, node string, apiCfg *apiServerConfig)
} }
return func(cfg *nodeutil.NodeConfig) error { return func(cfg *nodeutil.NodeConfig) error {
auth, err := nodeutil.WebhookAuth(client, node, func(cfg *nodeutil.WebhookAuthConfig) error { auth, err := nodeutil.WebhookAuth(cfg.Client, node, func(cfg *nodeutil.WebhookAuthConfig) error {
var err error var err error
cfg.AuthnConfig.ClientCertificateCAContentProvider, err = dynamiccertificates.NewDynamicCAContentFromFile("ca-cert-bundle", apiCfg.CACertPath) cfg.AuthnConfig.ClientCertificateCAContentProvider, err = dynamiccertificates.NewDynamicCAContentFromFile("ca-cert-bundle", apiCfg.CACertPath)
return err return err

View File

@@ -268,7 +268,7 @@ func WithClient(c kubernetes.Interface) NodeOpt {
} }
} }
// NewNodeFromClient creates a new node using the provided client and name. // NewNode creates a new node using the provided client and name.
// This is intended for high-level/low boiler-plate usage. // This is intended for high-level/low boiler-plate usage.
// Use the constructors in the `node` package for lower level configuration. // Use the constructors in the `node` package for lower level configuration.
// //
@@ -277,7 +277,7 @@ func WithClient(c kubernetes.Interface) NodeOpt {
// If client is nil, this will construct a client using ClientsetFromEnv // If client is nil, this will construct a client using ClientsetFromEnv
// //
// It is up to the caller to configure auth on the HTTP handler. // It is up to the caller to configure auth on the HTTP handler.
func NewNodeFromClient(name string, newProvider NewProviderFunc, opts ...NodeOpt) (*Node, error) { func NewNode(name string, newProvider NewProviderFunc, opts ...NodeOpt) (*Node, error) {
cfg := NodeConfig{ cfg := NodeConfig{
NumWorkers: runtime.NumCPU(), NumWorkers: runtime.NumCPU(),
InformerResyncPeriod: time.Minute, InformerResyncPeriod: time.Minute,
@@ -315,23 +315,22 @@ func NewNodeFromClient(name string, newProvider NewProviderFunc, opts ...NodeOpt
return nil, errors.Wrap(err, "error parsing http listen address") return nil, errors.Wrap(err, "error parsing http listen address")
} }
client := cfg.Client if cfg.Client == nil {
if client == nil {
var err error var err error
client, err = ClientsetFromEnv(cfg.KubeconfigPath) cfg.Client, err = ClientsetFromEnv(cfg.KubeconfigPath)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "error creating clientset from env") return nil, errors.Wrap(err, "error creating clientset from env")
} }
} }
podInformerFactory := informers.NewSharedInformerFactoryWithOptions( podInformerFactory := informers.NewSharedInformerFactoryWithOptions(
client, cfg.Client,
cfg.InformerResyncPeriod, cfg.InformerResyncPeriod,
PodInformerFilter(name), PodInformerFilter(name),
) )
scmInformerFactory := informers.NewSharedInformerFactoryWithOptions( scmInformerFactory := informers.NewSharedInformerFactoryWithOptions(
client, cfg.Client,
cfg.InformerResyncPeriod, cfg.InformerResyncPeriod,
) )
@@ -370,8 +369,8 @@ func NewNodeFromClient(name string, newProvider NewProviderFunc, opts ...NodeOpt
nc, err := node.NewNodeController( nc, err := node.NewNodeController(
np, np,
&cfg.NodeSpec, &cfg.NodeSpec,
client.CoreV1().Nodes(), cfg.Client.CoreV1().Nodes(),
node.WithNodeEnableLeaseV1(NodeLeaseV1Client(client), node.DefaultLeaseDuration), node.WithNodeEnableLeaseV1(NodeLeaseV1Client(cfg.Client), node.DefaultLeaseDuration),
) )
if err != nil { if err != nil {
return nil, errors.Wrap(err, "error creating node controller") return nil, errors.Wrap(err, "error creating node controller")
@@ -384,7 +383,7 @@ func NewNodeFromClient(name string, newProvider NewProviderFunc, opts ...NodeOpt
} }
pc, err := node.NewPodController(node.PodControllerConfig{ pc, err := node.NewPodController(node.PodControllerConfig{
PodClient: client.CoreV1(), PodClient: cfg.Client.CoreV1(),
EventRecorder: cfg.EventRecorder, EventRecorder: cfg.EventRecorder,
Provider: p, Provider: p,
PodInformer: podInformer, PodInformer: podInformer,
@@ -405,7 +404,7 @@ func NewNodeFromClient(name string, newProvider NewProviderFunc, opts ...NodeOpt
eb: eb, eb: eb,
podInformerFactory: podInformerFactory, podInformerFactory: podInformerFactory,
scmInformerFactory: scmInformerFactory, scmInformerFactory: scmInformerFactory,
client: client, client: cfg.Client,
tlsConfig: cfg.TLSConfig, tlsConfig: cfg.TLSConfig,
h: cfg.Handler, h: cfg.Handler,
listenAddr: cfg.HTTPListenAddr, listenAddr: cfg.HTTPListenAddr,