func()

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
}