// 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.CoreClient, err = v1core.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AppsClient, err = v1alpha1apps.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AuthenticationClient, err = v1beta1authentication.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AuthorizationClient, err = v1beta1authorization.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.AutoscalingClient, err = v1autoscaling.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.BatchClient, err = v1batch.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.CertificatesClient, err = v1alpha1certificates.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.ExtensionsClient, err = v1beta1extensions.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.PolicyClient, err = v1alpha1policy.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.RbacClient, err = v1alpha1rbac.NewForConfig(&configShallowCopy) if err != nil { return nil, err } clientset.StorageClient, 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 }
func TestPerformTLSBootstrap(t *testing.T) { srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { switch req.URL.Path { default: output, err := json.Marshal(nil) if err != nil { t.Errorf("unexpected encoding error: %v", err) return } w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusOK) w.Write(output) } })) defer srv.Close() tests := []struct { h string expect bool }{ { h: "", expect: false, }, { h: "localhost", expect: false, }, { h: srv.URL, expect: false, }, } for _, rt := range tests { cd := &ConnectionDetails{} r := &restclient.Config{Host: rt.h} tmpConfig, err := certclient.NewForConfig(r) if err != nil { t.Fatalf("encountered an error while trying to get New Cert Client: %v", err) } cd.CertClient = tmpConfig _, actual := PerformTLSBootstrap(cd) if (actual == nil) != rt.expect { t.Errorf( "failed createClients:\n\texpected: %t\n\t actual: %t", rt.expect, (actual == nil), ) } } }