From cf012f20d0a7c4babb0c1a546522e7c71635070b Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Wed, 26 Apr 2017 17:13:48 -0700 Subject: [PATCH] easy changes Kubernetes-commit: 3fa7b7824abbf3daec1189b118b91b5bb726958f --- discovery/discovery_client.go | 4 +-- discovery/helper_blackbox_test.go | 26 +++++++------- discovery/restmapper_test.go | 3 +- dynamic/client.go | 10 +++--- dynamic/client_pool.go | 7 ++-- examples/third-party-resources/BUILD | 1 + examples/third-party-resources/main.go | 13 +++---- examples/workqueue/main.go | 3 +- kubernetes/typed/core/v1/pod_expansion.go | 4 +-- pkg/api/v1/resource/BUILD | 2 +- pkg/api/v1/resource/helpers.go | 9 +++-- pkg/api/v1/types.go | 34 +++++++++++++++++++ pkg/apis/apps/v1beta1/conversion.go | 2 +- rest/config.go | 6 ++-- rest/url_utils_test.go | 18 +++++----- tools/cache/BUILD | 3 +- tools/cache/index_test.go | 4 +-- tools/cache/mutation_detector.go | 4 +-- tools/cache/shared_informer_test.go | 10 +++--- tools/cache/testing/BUILD | 1 + tools/cache/testing/fake_controller_source.go | 8 ++--- .../testing/fake_controller_source_test.go | 3 +- tools/clientcmd/client_config.go | 4 +-- tools/clientcmd/merged_client_builder.go | 4 +-- tools/portforward/portforward.go | 10 +++--- tools/record/BUILD | 1 - 26 files changed, 114 insertions(+), 80 deletions(-) diff --git a/discovery/discovery_client.go b/discovery/discovery_client.go index f1afb651..aba1c482 100644 --- a/discovery/discovery_client.go +++ b/discovery/discovery_client.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/version" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" ) @@ -410,7 +410,7 @@ func withRetries(maxRetries int, f func(failEarly bool) ([]*metav1.APIResourceLi func setDiscoveryDefaults(config *restclient.Config) error { config.APIPath = "" config.GroupVersion = nil - codec := runtime.NoopEncoder{Decoder: api.Codecs.UniversalDecoder()} + codec := runtime.NoopEncoder{Decoder: scheme.Codecs.UniversalDecoder()} config.NegotiatedSerializer = serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: codec}) if len(config.UserAgent) == 0 { config.UserAgent = restclient.DefaultKubernetesUserAgent() diff --git a/discovery/helper_blackbox_test.go b/discovery/helper_blackbox_test.go index 9093316e..ac4df8a9 100644 --- a/discovery/helper_blackbox_test.go +++ b/discovery/helper_blackbox_test.go @@ -32,11 +32,10 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/discovery" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - - _ "k8s.io/client-go/pkg/api/install" ) func objBody(object interface{}) io.ReadCloser { @@ -60,23 +59,23 @@ func TestNegotiateVersion(t *testing.T) { }{ { name: "server supports client default", - serverVersions: []string{"version1", api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + serverVersions: []string{"version1", v1.SchemeGroupVersion.String()}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectedVersion: &schema.GroupVersion{Version: "version1"}, statusCode: http.StatusOK, }, { name: "server falls back to client supported", serverVersions: []string{"version1"}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectedVersion: &schema.GroupVersion{Version: "version1"}, statusCode: http.StatusOK, }, { name: "explicit version supported", requiredVersion: &schema.GroupVersion{Version: "v1"}, - serverVersions: []string{"/version1", api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + serverVersions: []string{"/version1", v1.SchemeGroupVersion.String()}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectedVersion: &schema.GroupVersion{Version: "v1"}, statusCode: http.StatusOK, }, @@ -84,7 +83,7 @@ func TestNegotiateVersion(t *testing.T) { name: "explicit version not supported on server", requiredVersion: &schema.GroupVersion{Version: "v1"}, serverVersions: []string{"version1"}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectErr: func(err error) bool { return strings.Contains(err.Error(), `server does not support API version "v1"`) }, statusCode: http.StatusOK, }, @@ -99,21 +98,21 @@ func TestNegotiateVersion(t *testing.T) { { name: "connection refused error", serverVersions: []string{"version1"}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, sendErr: errors.New("connection refused"), expectErr: func(err error) bool { return strings.Contains(err.Error(), "connection refused") }, statusCode: http.StatusOK, }, { name: "discovery fails due to 403 Forbidden errors and thus serverVersions is empty, use default GroupVersion", - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectedVersion: &schema.GroupVersion{Version: "version1"}, statusCode: http.StatusForbidden, }, { name: "discovery fails due to 404 Not Found errors and thus serverVersions is empty, use requested GroupVersion", requiredVersion: &schema.GroupVersion{Version: "version1"}, - clientVersions: []schema.GroupVersion{{Version: "version1"}, api.Registry.GroupOrDie(api.GroupName).GroupVersion}, + clientVersions: []schema.GroupVersion{{Version: "version1"}, v1.SchemeGroupVersion}, expectedVersion: &schema.GroupVersion{Version: "version1"}, statusCode: http.StatusNotFound, }, @@ -126,8 +125,7 @@ func TestNegotiateVersion(t *testing.T) { for _, test := range tests { fakeClient := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: api.Codecs, + NegotiatedSerializer: scheme.Codecs, Resp: &http.Response{ StatusCode: test.statusCode, Body: objBody(&uapi.APIVersions{Versions: test.serverVersions}), diff --git a/discovery/restmapper_test.go b/discovery/restmapper_test.go index 917e677c..baa16b82 100644 --- a/discovery/restmapper_test.go +++ b/discovery/restmapper_test.go @@ -25,7 +25,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/version" . "k8s.io/client-go/discovery" - "k8s.io/client-go/pkg/api" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" @@ -209,7 +208,7 @@ func TestDeferredDiscoveryRESTMapper_CacheMiss(t *testing.T) { assert := assert.New(t) cdc := fakeCachedDiscoveryInterface{fresh: false} - m := NewDeferredDiscoveryRESTMapper(&cdc, api.Registry.InterfacesFor) + m := NewDeferredDiscoveryRESTMapper(&cdc, nil) assert.False(cdc.fresh, "should NOT be fresh after instantiation") assert.Zero(cdc.invalidateCalls, "should not have called Invalidate()") diff --git a/dynamic/client.go b/dynamic/client.go index 34ffe584..6831b3d6 100644 --- a/dynamic/client.go +++ b/dynamic/client.go @@ -34,7 +34,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/util/flowcontrol" @@ -245,9 +245,9 @@ func (dynamicCodec) Encode(obj runtime.Object, w io.Writer) error { // ContentConfig returns a restclient.ContentConfig for dynamic types. func ContentConfig() restclient.ContentConfig { var jsonInfo runtime.SerializerInfo - // TODO: api.Codecs here should become "pkg/apis/server/scheme" which is the minimal core you need + // TODO: scheme.Codecs here should become "pkg/apis/server/scheme" which is the minimal core you need // to talk to a kubernetes server - for _, info := range api.Codecs.SupportedMediaTypes() { + for _, info := range scheme.Codecs.SupportedMediaTypes() { if info.MediaType == runtime.ContentTypeJSON { jsonInfo = info break @@ -280,10 +280,10 @@ var defaultParameterEncoder runtime.ParameterCodec = parameterCodec{} type versionedParameterEncoderWithV1Fallback struct{} func (versionedParameterEncoderWithV1Fallback) EncodeParameters(obj runtime.Object, to schema.GroupVersion) (url.Values, error) { - ret, err := api.ParameterCodec.EncodeParameters(obj, to) + ret, err := scheme.ParameterCodec.EncodeParameters(obj, to) if err != nil && runtime.IsNotRegisteredError(err) { // fallback to v1 - return api.ParameterCodec.EncodeParameters(obj, v1.SchemeGroupVersion) + return scheme.ParameterCodec.EncodeParameters(obj, v1.SchemeGroupVersion) } return ret, err } diff --git a/dynamic/client_pool.go b/dynamic/client_pool.go index d38ddc71..f4f2596a 100644 --- a/dynamic/client_pool.go +++ b/dynamic/client_pool.go @@ -21,7 +21,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/pkg/api" restclient "k8s.io/client-go/rest" ) @@ -73,9 +72,9 @@ func NewClientPool(config *restclient.Config, mapper meta.RESTMapper, apiPathRes // Instantiates a new dynamic client pool with the given config. func NewDynamicClientPool(cfg *restclient.Config) ClientPool { - // TODO: should use a dynamic RESTMapper built from the discovery results. - restMapper := api.Registry.RESTMapper() - return NewClientPool(cfg, restMapper, LegacyAPIPathResolverFunc) + // restMapper is not needed when using LegacyAPIPathResolverFunc + emptyMapper := meta.MultiRESTMapper{} + return NewClientPool(cfg, emptyMapper, LegacyAPIPathResolverFunc) } // ClientForGroupVersionResource uses the provided RESTMapper to identify the appropriate resource. Resource may diff --git a/examples/third-party-resources/BUILD b/examples/third-party-resources/BUILD index 940fd975..6c2eb26f 100644 --- a/examples/third-party-resources/BUILD +++ b/examples/third-party-resources/BUILD @@ -40,6 +40,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/pkg/api:go_default_library", "//vendor/k8s.io/client-go/pkg/apis/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/examples/third-party-resources/main.go b/examples/third-party-resources/main.go index d720a4aa..3ae3c525 100644 --- a/examples/third-party-resources/main.go +++ b/examples/third-party-resources/main.go @@ -27,7 +27,8 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/kubernetes" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -90,7 +91,7 @@ func main() { err = tprclient.Get(). Resource("examples"). - Namespace(api.NamespaceDefault). + Namespace(v1.NamespaceDefault). Name("example1"). Do().Into(&example) @@ -110,7 +111,7 @@ func main() { var result Example err = tprclient.Post(). Resource("examples"). - Namespace(api.NamespaceDefault). + Namespace(v1.NamespaceDefault). Body(example). Do().Into(&result) @@ -150,7 +151,7 @@ func configureClient(config *rest.Config) { config.GroupVersion = &groupversion config.APIPath = "/apis" config.ContentType = runtime.ContentTypeJSON - config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: api.Codecs} + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} schemeBuilder := runtime.NewSchemeBuilder( func(scheme *runtime.Scheme) error { @@ -161,6 +162,6 @@ func configureClient(config *rest.Config) { ) return nil }) - metav1.AddToGroupVersion(api.Scheme, groupversion) - schemeBuilder.AddToScheme(api.Scheme) + metav1.AddToGroupVersion(scheme.Scheme, groupversion) + schemeBuilder.AddToScheme(scheme.Scheme) } diff --git a/examples/workqueue/main.go b/examples/workqueue/main.go index fb6efd3d..c255ed76 100644 --- a/examples/workqueue/main.go +++ b/examples/workqueue/main.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/kubernetes" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" @@ -163,7 +162,7 @@ func main() { } // create the pod watcher - podListWatcher := cache.NewListWatchFromClient(clientset.Core().RESTClient(), "pods", api.NamespaceDefault, fields.Everything()) + podListWatcher := cache.NewListWatchFromClient(clientset.Core().RESTClient(), "pods", v1.NamespaceDefault, fields.Everything()) // create the workqueue queue := workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()) diff --git a/kubernetes/typed/core/v1/pod_expansion.go b/kubernetes/typed/core/v1/pod_expansion.go index 82f3b7fb..3919289e 100644 --- a/kubernetes/typed/core/v1/pod_expansion.go +++ b/kubernetes/typed/core/v1/pod_expansion.go @@ -17,7 +17,7 @@ limitations under the License. package v1 import ( - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" policy "k8s.io/client-go/pkg/apis/policy/v1beta1" restclient "k8s.io/client-go/rest" @@ -41,5 +41,5 @@ func (c *pods) Evict(eviction *policy.Eviction) error { // Get constructs a request for getting the logs for a pod func (c *pods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request { - return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, api.ParameterCodec) + return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, scheme.ParameterCodec) } diff --git a/pkg/api/v1/resource/BUILD b/pkg/api/v1/resource/BUILD index cb244ebc..e552f6f3 100644 --- a/pkg/api/v1/resource/BUILD +++ b/pkg/api/v1/resource/BUILD @@ -26,7 +26,7 @@ go_library( tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/client-go/pkg/api:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", ], ) diff --git a/pkg/api/v1/resource/helpers.go b/pkg/api/v1/resource/helpers.go index 7772ace6..41e02189 100644 --- a/pkg/api/v1/resource/helpers.go +++ b/pkg/api/v1/resource/helpers.go @@ -22,7 +22,6 @@ import ( "strconv" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api/v1" ) @@ -112,15 +111,19 @@ func ExtractResourceValueByContainerName(fs *v1.ResourceFieldSelector, pod *v1.P return ExtractContainerResourceValue(fs, container) } +type deepCopier interface { + DeepCopy(interface{}) (interface{}, error) +} + // ExtractResourceValueByContainerNameAndNodeAllocatable extracts the value of a resource // by providing container name and node allocatable -func ExtractResourceValueByContainerNameAndNodeAllocatable(fs *v1.ResourceFieldSelector, pod *v1.Pod, containerName string, nodeAllocatable v1.ResourceList) (string, error) { +func ExtractResourceValueByContainerNameAndNodeAllocatable(copier deepCopier, fs *v1.ResourceFieldSelector, pod *v1.Pod, containerName string, nodeAllocatable v1.ResourceList) (string, error) { realContainer, err := findContainerInPod(pod, containerName) if err != nil { return "", err } - containerCopy, err := api.Scheme.DeepCopy(realContainer) + containerCopy, err := copier.DeepCopy(realContainer) if err != nil { return "", fmt.Errorf("failed to perform a deep copy of container object: %v", err) } diff --git a/pkg/api/v1/types.go b/pkg/api/v1/types.go index 0ce815b3..4bd30ba9 100644 --- a/pkg/api/v1/types.go +++ b/pkg/api/v1/types.go @@ -4428,3 +4428,37 @@ type NodeResources struct { // Capacity represents the available resources of a node Capacity ResourceList `protobuf:"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName"` } + +const ( + // Enable stdin for remote command execution + ExecStdinParam = "input" + // Enable stdout for remote command execution + ExecStdoutParam = "output" + // Enable stderr for remote command execution + ExecStderrParam = "error" + // Enable TTY for remote command execution + ExecTTYParam = "tty" + // Command to run for remote command execution + ExecCommandParamm = "command" + + // Name of header that specifies stream type + StreamType = "streamType" + // Value for streamType header for stdin stream + StreamTypeStdin = "stdin" + // Value for streamType header for stdout stream + StreamTypeStdout = "stdout" + // Value for streamType header for stderr stream + StreamTypeStderr = "stderr" + // Value for streamType header for data stream + StreamTypeData = "data" + // Value for streamType header for error stream + StreamTypeError = "error" + // Value for streamType header for terminal resize stream + StreamTypeResize = "resize" + + // Name of header that specifies the port being forwarded + PortHeader = "port" + // Name of header that specifies a request ID used to associate the error + // and data streams for a single forwarded connection + PortForwardRequestIDHeader = "requestID" +) diff --git a/pkg/apis/apps/v1beta1/conversion.go b/pkg/apis/apps/v1beta1/conversion.go index 96d3330f..6631cd37 100644 --- a/pkg/apis/apps/v1beta1/conversion.go +++ b/pkg/apis/apps/v1beta1/conversion.go @@ -66,7 +66,7 @@ func addConversionFuncs(scheme *runtime.Scheme) error { if err != nil { return err } - err = api.Scheme.AddFieldLabelConversionFunc("apps/v1beta1", "Deployment", + err = scheme.AddFieldLabelConversionFunc("apps/v1beta1", "Deployment", func(label, value string) (string, string, error) { switch label { case "metadata.name", "metadata.namespace": diff --git a/rest/config.go b/rest/config.go index 07e724f2..b4511486 100644 --- a/rest/config.go +++ b/rest/config.go @@ -32,7 +32,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/version" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" certutil "k8s.io/client-go/util/cert" @@ -312,12 +312,12 @@ func InClusterConfig() (*Config, error) { return nil, fmt.Errorf("unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined") } - token, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/" + api.ServiceAccountTokenKey) + token, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/" + v1.ServiceAccountTokenKey) if err != nil { return nil, err } tlsClientConfig := TLSClientConfig{} - rootCAFile := "/var/run/secrets/kubernetes.io/serviceaccount/" + api.ServiceAccountRootCAKey + rootCAFile := "/var/run/secrets/kubernetes.io/serviceaccount/" + v1.ServiceAccountRootCAKey if _, err := certutil.NewPool(rootCAFile); err != nil { glog.Errorf("Expected to load root CA config from %s, but got err: %v", rootCAFile, err) } else { diff --git a/rest/url_utils_test.go b/rest/url_utils_test.go index 52b951f3..e53644f7 100644 --- a/rest/url_utils_test.go +++ b/rest/url_utils_test.go @@ -20,7 +20,7 @@ import ( "path" "testing" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" ) func TestValidatesHostParameter(t *testing.T) { @@ -31,17 +31,17 @@ func TestValidatesHostParameter(t *testing.T) { URL string Err bool }{ - {"127.0.0.1", "", "http://127.0.0.1/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"foo.bar.com", "", "http://foo.bar.com/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"http://host/prefix", "", "http://host/prefix/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"http://host", "", "http://host/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"http://host", "/", "http://host/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, - {"http://host", "/other", "http://host/other/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, false}, + {"127.0.0.1", "", "http://127.0.0.1/" + v1.SchemeGroupVersion.Version, false}, + {"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + v1.SchemeGroupVersion.Version, false}, + {"foo.bar.com", "", "http://foo.bar.com/" + v1.SchemeGroupVersion.Version, false}, + {"http://host/prefix", "", "http://host/prefix/" + v1.SchemeGroupVersion.Version, false}, + {"http://host", "", "http://host/" + v1.SchemeGroupVersion.Version, false}, + {"http://host", "/", "http://host/" + v1.SchemeGroupVersion.Version, false}, + {"http://host", "/other", "http://host/other/" + v1.SchemeGroupVersion.Version, false}, {"host/server", "", "", true}, } for i, testCase := range testCases { - u, versionedAPIPath, err := DefaultServerURL(testCase.Host, testCase.APIPath, api.Registry.GroupOrDie(api.GroupName).GroupVersion, false) + u, versionedAPIPath, err := DefaultServerURL(testCase.Host, testCase.APIPath, v1.SchemeGroupVersion, false) switch { case err == nil && testCase.Err: t.Errorf("expected error but was nil") diff --git a/tools/cache/BUILD b/tools/cache/BUILD index 9b75efa7..6b2a2473 100644 --- a/tools/cache/BUILD +++ b/tools/cache/BUILD @@ -33,6 +33,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/pkg/api:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", "//vendor/k8s.io/client-go/tools/cache/testing:go_default_library", @@ -75,7 +76,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/pkg/api:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/util/clock:go_default_library", ], diff --git a/tools/cache/index_test.go b/tools/cache/index_test.go index efb21ab9..418dca44 100644 --- a/tools/cache/index_test.go +++ b/tools/cache/index_test.go @@ -21,7 +21,7 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" ) @@ -119,7 +119,7 @@ func TestMultiIndexKeys(t *testing.T) { t.Errorf("Expected 0 pods but got %v", len(elmoPods)) } - obj, err := api.Scheme.DeepCopy(pod2) + obj, err := scheme.Scheme.DeepCopy(pod2) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/tools/cache/mutation_detector.go b/tools/cache/mutation_detector.go index cc739911..cc6094ce 100644 --- a/tools/cache/mutation_detector.go +++ b/tools/cache/mutation_detector.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" ) var mutationDetectionEnabled = false @@ -102,7 +102,7 @@ func (d *defaultCacheMutationDetector) AddObject(obj interface{}) { return } - copiedObj, err := api.Scheme.Copy(obj.(runtime.Object)) + copiedObj, err := scheme.Scheme.Copy(obj.(runtime.Object)) if err != nil { return } diff --git a/tools/cache/shared_informer_test.go b/tools/cache/shared_informer_test.go index 11157479..525223b4 100644 --- a/tools/cache/shared_informer_test.go +++ b/tools/cache/shared_informer_test.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" fcache "k8s.io/client-go/tools/cache/testing" "k8s.io/client-go/util/clock" ) @@ -98,11 +98,11 @@ func (l *testListener) satisfiedExpectations() bool { func TestListenerResyncPeriods(t *testing.T) { // source simulates an apiserver object endpoint. source := fcache.NewFakeControllerSource() - source.Add(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "pod1"}}) - source.Add(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "pod2"}}) + source.Add(&v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "pod1"}}) + source.Add(&v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "pod2"}}) // create the shared informer and resync every 1s - informer := NewSharedInformer(source, &api.Pod{}, 1*time.Second).(*sharedIndexInformer) + informer := NewSharedInformer(source, &v1.Pod{}, 1*time.Second).(*sharedIndexInformer) clock := clock.NewFakeClock(time.Now()) informer.clock = clock @@ -187,7 +187,7 @@ func TestResyncCheckPeriod(t *testing.T) { source := fcache.NewFakeControllerSource() // create the shared informer and resync every 12 hours - informer := NewSharedInformer(source, &api.Pod{}, 12*time.Hour).(*sharedIndexInformer) + informer := NewSharedInformer(source, &v1.Pod{}, 12*time.Hour).(*sharedIndexInformer) clock := clock.NewFakeClock(time.Now()) informer.clock = clock diff --git a/tools/cache/testing/BUILD b/tools/cache/testing/BUILD index decb95fd..7c7a1171 100644 --- a/tools/cache/testing/BUILD +++ b/tools/cache/testing/BUILD @@ -31,6 +31,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/pkg/api:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", ], diff --git a/tools/cache/testing/fake_controller_source.go b/tools/cache/testing/fake_controller_source.go index 59a490a6..fd06fc89 100644 --- a/tools/cache/testing/fake_controller_source.go +++ b/tools/cache/testing/fake_controller_source.go @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" ) @@ -153,7 +153,7 @@ func (f *FakeControllerSource) getListItemsLocked() ([]runtime.Object, error) { // Otherwise, if they make a change and write it back, they // will inadvertently change our canonical copy (in // addition to racing with other clients). - objCopy, err := api.Scheme.DeepCopy(obj) + objCopy, err := scheme.Scheme.DeepCopy(obj) if err != nil { return nil, err } @@ -170,7 +170,7 @@ func (f *FakeControllerSource) List(options metav1.ListOptions) (runtime.Object, if err != nil { return nil, err } - listObj := &api.List{} + listObj := &v1.List{} if err := meta.SetList(listObj, list); err != nil { return nil, err } @@ -242,7 +242,7 @@ func (f *FakeControllerSource) Watch(options metav1.ListOptions) (watch.Interfac // it back, they will inadvertently change the our // canonical copy (in addition to racing with other // clients). - objCopy, err := api.Scheme.DeepCopy(c.Object) + objCopy, err := scheme.Scheme.DeepCopy(c.Object) if err != nil { return nil, err } diff --git a/tools/cache/testing/fake_controller_source_test.go b/tools/cache/testing/fake_controller_source_test.go index 6911abc4..2a03171c 100644 --- a/tools/cache/testing/fake_controller_source_test.go +++ b/tools/cache/testing/fake_controller_source_test.go @@ -22,7 +22,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api/v1" ) @@ -76,7 +75,7 @@ func TestRCNumber(t *testing.T) { if err != nil { t.Fatalf("Unexpected error: %v", err) } - if e, a := "3", list.(*api.List).ResourceVersion; e != a { + if e, a := "3", list.(*v1.List).ResourceVersion; e != a { t.Errorf("wanted %v, got %v", e, a) } diff --git a/tools/clientcmd/client_config.go b/tools/clientcmd/client_config.go index 307d1216..c5c35307 100644 --- a/tools/clientcmd/client_config.go +++ b/tools/clientcmd/client_config.go @@ -27,7 +27,7 @@ import ( "github.com/golang/glog" "github.com/imdario/mergo" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" clientauth "k8s.io/client-go/tools/auth" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" @@ -298,7 +298,7 @@ func (config *DirectClientConfig) Namespace() (string, bool, error) { } if len(configContext.Namespace) == 0 { - return api.NamespaceDefault, false, nil + return v1.NamespaceDefault, false, nil } overridden := false diff --git a/tools/clientcmd/merged_client_builder.go b/tools/clientcmd/merged_client_builder.go index f3eb6a40..32ffd197 100644 --- a/tools/clientcmd/merged_client_builder.go +++ b/tools/clientcmd/merged_client_builder.go @@ -22,7 +22,7 @@ import ( "github.com/golang/glog" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) @@ -145,7 +145,7 @@ func (config *DeferredLoadingClientConfig) Namespace() (string, bool, error) { if len(ns) > 0 { // if we got a non-default namespace from the kubeconfig, use it - if ns != api.NamespaceDefault { + if ns != v1.NamespaceDefault { return ns, false, nil } diff --git a/tools/portforward/portforward.go b/tools/portforward/portforward.go index 981189eb..2071b25a 100644 --- a/tools/portforward/portforward.go +++ b/tools/portforward/portforward.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/client-go/pkg/api" + "k8s.io/client-go/pkg/api/v1" ) // TODO move to API machinery and re-unify with kubelet/server/portfoward @@ -263,9 +263,9 @@ func (pf *PortForwarder) handleConnection(conn net.Conn, port ForwardedPort) { // create error stream headers := http.Header{} - headers.Set(api.StreamType, api.StreamTypeError) - headers.Set(api.PortHeader, fmt.Sprintf("%d", port.Remote)) - headers.Set(api.PortForwardRequestIDHeader, strconv.Itoa(requestID)) + headers.Set(v1.StreamType, v1.StreamTypeError) + headers.Set(v1.PortHeader, fmt.Sprintf("%d", port.Remote)) + headers.Set(v1.PortForwardRequestIDHeader, strconv.Itoa(requestID)) errorStream, err := pf.streamConn.CreateStream(headers) if err != nil { runtime.HandleError(fmt.Errorf("error creating error stream for port %d -> %d: %v", port.Local, port.Remote, err)) @@ -287,7 +287,7 @@ func (pf *PortForwarder) handleConnection(conn net.Conn, port ForwardedPort) { }() // create data stream - headers.Set(api.StreamType, api.StreamTypeData) + headers.Set(v1.StreamType, v1.StreamTypeData) dataStream, err := pf.streamConn.CreateStream(headers) if err != nil { runtime.HandleError(fmt.Errorf("error creating forwarding stream for port %d -> %d: %v", port.Local, port.Remote, err)) diff --git a/tools/record/BUILD b/tools/record/BUILD index 0e39f0a9..dfce6a9d 100644 --- a/tools/record/BUILD +++ b/tools/record/BUILD @@ -22,7 +22,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", - "//vendor/k8s.io/client-go/pkg/api:go_default_library", "//vendor/k8s.io/client-go/pkg/api/install:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1/ref:go_default_library",