in internal/kubectl.go [52:84]
func NewKubectl(kubeConfig string, verbose bool) (*Kubectl, error) {
confFlags := genericclioptions.NewConfigFlags(true)
if kubeConfig != "" {
confFlags.KubeConfig = &kubeConfig
}
matchVersionFlags := cmdutil.NewMatchVersionFlags(confFlags)
factory := cmdutil.NewFactory(matchVersionFlags)
openAPISchema, err := factory.OpenAPISchema()
if err != nil {
return nil, fmt.Errorf("failed to retrieve OpenAPI schema: %w", err)
}
config, err := factory.ToRESTConfig()
if err != nil {
return nil, err
}
clientSet, err := factory.KubernetesClientSet()
if err != nil {
return nil, err
}
return &Kubectl{
Clientset: clientSet,
defaultNamespace: "default",
config: config,
factory: factory,
openAPISchema: openAPISchema,
out: os.Stdout,
errOut: os.Stderr,
verbose: verbose,
}, nil
}