func NewKubectl()

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
}