From c01fff766db9dcf757586dcd78ffa3c37b4dbaed Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Tue, 30 Aug 2022 22:18:14 +0000 Subject: [PATCH] Update mock CLI to use bootstrapper Signed-off-by: Brian Goff --- .../internal/commands/root/http.go | 22 +++----- .../internal/commands/root/root.go | 52 ++----------------- .../internal/provider/mock/mock.go | 2 +- 3 files changed, 12 insertions(+), 64 deletions(-) diff --git a/cmd/virtual-kubelet/internal/commands/root/http.go b/cmd/virtual-kubelet/internal/commands/root/http.go index a14b2c9df..4417d0a8a 100644 --- a/cmd/virtual-kubelet/internal/commands/root/http.go +++ b/cmd/virtual-kubelet/internal/commands/root/http.go @@ -16,31 +16,21 @@ package root import ( "fmt" - "os" "time" ) type apiServerConfig struct { - CertPath string - KeyPath string - CACertPath string Addr string MetricsAddr string StreamIdleTimeout time.Duration StreamCreationTimeout time.Duration } -func getAPIConfig(c Opts) (*apiServerConfig, error) { - config := apiServerConfig{ - CertPath: os.Getenv("APISERVER_CERT_LOCATION"), - KeyPath: os.Getenv("APISERVER_KEY_LOCATION"), - CACertPath: os.Getenv("APISERVER_CA_CERT_LOCATION"), +func getAPIConfig(c Opts) apiServerConfig { + return apiServerConfig{ + Addr: fmt.Sprintf(":%d", c.ListenPort), + MetricsAddr: c.MetricsAddr, + StreamIdleTimeout: c.StreamIdleTimeout, + StreamCreationTimeout: c.StreamCreationTimeout, } - - config.Addr = fmt.Sprintf(":%d", c.ListenPort) - config.MetricsAddr = c.MetricsAddr - config.StreamIdleTimeout = c.StreamIdleTimeout - config.StreamCreationTimeout = c.StreamCreationTimeout - - return &config, nil } diff --git a/cmd/virtual-kubelet/internal/commands/root/root.go b/cmd/virtual-kubelet/internal/commands/root/root.go index 73f55b441..2e786d7ef 100644 --- a/cmd/virtual-kubelet/internal/commands/root/root.go +++ b/cmd/virtual-kubelet/internal/commands/root/root.go @@ -16,8 +16,6 @@ package root import ( "context" - "crypto/tls" - "net/http" "os" "runtime" @@ -28,10 +26,8 @@ import ( "github.com/virtual-kubelet/virtual-kubelet/internal/manager" "github.com/virtual-kubelet/virtual-kubelet/log" "github.com/virtual-kubelet/virtual-kubelet/node" - "github.com/virtual-kubelet/virtual-kubelet/node/api" "github.com/virtual-kubelet/virtual-kubelet/node/nodeutil" corev1 "k8s.io/api/core/v1" - "k8s.io/apiserver/pkg/server/dynamiccertificates" ) // NewCommand creates a new top-level command. @@ -73,14 +69,6 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error { } } - // Ensure API client. - clientSet, err := nodeutil.ClientsetFromEnv(c.KubeConfigPath) - if err != nil { - return err - } - - // Set-up the node provider. - mux := http.NewServeMux() newProvider := func(cfg nodeutil.ProviderConfig) (nodeutil.Provider, node.NodeProvider, error) { rm, err := manager.NewResourceManager(cfg.Pods, cfg.Secrets, cfg.ConfigMaps, cfg.Services) if err != nil { @@ -109,14 +97,9 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error { return p, nil, nil } - apiConfig, err := getAPIConfig(c) - if err != nil { - return err - } - + apiConfig := getAPIConfig(c) cm, err := nodeutil.NewNode(c.NodeName, newProvider, func(cfg *nodeutil.NodeConfig) error { cfg.KubeconfigPath = c.KubeConfigPath - cfg.Handler = mux cfg.InformerResyncPeriod = c.InformerResyncPeriod if taint != nil { @@ -134,6 +117,7 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error { return nil }, +<<<<<<< HEAD nodeutil.WithClient(clientSet), setAuth(c.NodeName, apiConfig), nodeutil.WithTLSConfig( @@ -141,6 +125,9 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error { maybeCA(apiConfig.CACertPath), ), nodeutil.AttachProviderRoutes(mux), +======= + nodeutil.WithBootstrapFromRestConfig(), +>>>>>>> 1eab7362 (Update mock CLI to use bootstrapper) ) if err != nil { return err @@ -179,32 +166,3 @@ func runRootCommand(ctx context.Context, s *provider.Store, c Opts) error { } return nil } - -func setAuth(node string, apiCfg *apiServerConfig) nodeutil.NodeOpt { - if apiCfg.CACertPath == "" { - return func(cfg *nodeutil.NodeConfig) error { - cfg.Handler = api.InstrumentHandler(nodeutil.WithAuth(nodeutil.NoAuth(), cfg.Handler)) - return nil - } - } - - return func(cfg *nodeutil.NodeConfig) error { - auth, err := nodeutil.WebhookAuth(cfg.Client, node, func(cfg *nodeutil.WebhookAuthConfig) error { - var err error - cfg.AuthnConfig.ClientCertificateCAContentProvider, err = dynamiccertificates.NewDynamicCAContentFromFile("ca-cert-bundle", apiCfg.CACertPath) - return err - }) - if err != nil { - return err - } - cfg.Handler = api.InstrumentHandler(nodeutil.WithAuth(auth, cfg.Handler)) - return nil - } -} - -func maybeCA(p string) func(*tls.Config) error { - if p == "" { - return func(*tls.Config) error { return nil } - } - return nodeutil.WithCAFromPath(p) -} diff --git a/cmd/virtual-kubelet/internal/provider/mock/mock.go b/cmd/virtual-kubelet/internal/provider/mock/mock.go index 77eeb930f..5f317d0a2 100644 --- a/cmd/virtual-kubelet/internal/provider/mock/mock.go +++ b/cmd/virtual-kubelet/internal/provider/mock/mock.go @@ -102,7 +102,7 @@ func NewMockProvider(providerConfig, nodeName, operatingSystem string, internalI func loadConfig(providerConfig, nodeName string) (config MockConfig, err error) { data, err := os.ReadFile(providerConfig) if err != nil { - return config, err + return config, fmt.Errorf("error reaeding provider config: %w", err) } configMap := map[string]MockConfig{} err = json.Unmarshal(data, &configMap)