in client/internal/kubeconfig/validator.go [72:98]
func (v *validator) Validate(kubeconfigPath string, ensureAuthorizedClient bool) error {
clientConfig, err := v.clientConfigLoader(kubeconfigPath)
if err != nil {
return fmt.Errorf("failed to create REST client config from kubeconfig: %w", err)
}
if err := validateClientConfig(clientConfig); err != nil {
return fmt.Errorf("failed to validate client config contents: %w", err)
}
if !ensureAuthorizedClient {
return nil
}
restclient.AddUserAgent(clientConfig, internalhttp.GetUserAgentValue())
clientConfig.Wrap(func(rt http.RoundTripper) http.RoundTripper {
c := internalhttp.NewRetryableClient(v.logger)
c.HTTPClient = &http.Client{Transport: rt}
return &retryablehttp.RoundTripper{Client: c}
})
clientset, err := v.clientsetLoader(clientConfig)
if err != nil {
return fmt.Errorf("failed to create clientset from REST client config: %w", err)
}
if err := ensureAuthorized(clientset); err != nil {
return fmt.Errorf("failed to ensure client authorization: %w", err)
}
v.logger.Info("ensured existing clientset is authorized", zap.String("kubeconfig", kubeconfigPath))
return nil
}