func NewClient()

in kubectl-utils/pkg/kube/client.go [34:61]


func NewClient(kubeconfig string) (*Client, error) {
	clientConfig, err := loadKubeconfig(kubeconfig)
	if err != nil {
		return nil, err
	}
	restConfig, err := clientConfig.ClientConfig()
	if err != nil {
		return nil, fmt.Errorf("building kubernetes API configuration: %w", err)
	}

	httpClient, err := rest.HTTPClientFor(restConfig)
	if err != nil {
		return nil, fmt.Errorf("building http client for rest config: %w", err)
	}
	dynamicClient, err := dynamic.NewForConfigAndClient(restConfig, httpClient)
	if err != nil {
		return nil, fmt.Errorf("building dynamic client: %w", err)
	}
	discoveryClient, err := buildDiscoveryClient(restConfig, httpClient)
	if err != nil {
		return nil, err
	}
	return &Client{
		clientConfig:    clientConfig,
		DyanmicClient:   dynamicClient,
		DiscoveryClient: discoveryClient,
	}, nil
}