func (s *DelegatingAuthorizationOptions) newSubjectAccessReview() (authorizationclient.SubjectAccessReviewInterface, error) { var clientConfig *restclient.Config var err error if len(s.RemoteKubeConfigFile) > 0 { loadingRules := &clientcmd.ClientConfigLoadingRules{ExplicitPath: s.RemoteKubeConfigFile} loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) clientConfig, err = loader.ClientConfig() } else { // without the remote kubeconfig file, try to use the in-cluster config. Most addon API servers will // use this path clientConfig, err = restclient.InClusterConfig() } if err != nil { return nil, err } // set high qps/burst limits since this will effectively limit API server responsiveness clientConfig.QPS = 200 clientConfig.Burst = 400 client, err := authorizationclient.NewForConfig(clientConfig) if err != nil { return nil, err } return client.SubjectAccessReviews(), nil }
func (s *DelegatingAuthorizationOptions) newSubjectAccessReview() (authorizationclient.SubjectAccessReviewInterface, error) { if len(s.RemoteKubeConfigFile) == 0 { return nil, nil } loadingRules := &clientcmd.ClientConfigLoadingRules{ExplicitPath: s.RemoteKubeConfigFile} loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) clientConfig, err := loader.ClientConfig() if err != nil { return nil, err } // set high qps/burst limits since this will effectively limit API server responsiveness clientConfig.QPS = 200 clientConfig.Burst = 400 client, err := authorizationclient.NewForConfig(clientConfig) if err != nil { return nil, err } return client.SubjectAccessReviews(), nil }
// NewForConfig creates a new Clientset for the given config. func NewForConfig(c *restclient.Config) (*Clientset, error) { configShallowCopy := *c if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) } var clientset Clientset var err error clientset.CoreV1Client, err = v1core.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AppsV1beta1Client, err = v1beta1apps.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AuthenticationV1beta1Client, err = v1beta1authentication.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AuthorizationV1beta1Client, err = v1beta1authorization.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AutoscalingV1Client, err = v1autoscaling.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.BatchV1Client, err = v1batch.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.BatchV2alpha1Client, err = v2alpha1batch.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.CertificatesV1alpha1Client, err = v1alpha1certificates.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.ExtensionsV1beta1Client, err = v1beta1extensions.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.PolicyV1beta1Client, err = v1beta1policy.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.RbacV1alpha1Client, err = v1alpha1rbac.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.StorageV1beta1Client, err = v1beta1storage.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { glog.Errorf("failed to create the DiscoveryClient: %v", err) return nil, err } return &clientset, nil }