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
}